javascript 環境介紹
javascript 執行的環境,第一為 node.js、第二個為瀏覽器,將 node.js 安裝到自己的電腦本地端,可以透過 command line 的操作,提供 javascript 程式碼在 node.js 裡執行,而瀏覽器為另一個 javascript 的執行環境。
javascript 變數
變數宣告
var、let、const 使用變數前要先宣告,且記憶體會保留一個空間給要儲存的值。
1.var
var box = 1
注意:
a.var的作用域在function。
b.沒有賦值,會印出 undefined
c.沒有宣告,會印出 not defined
2.let
let box = 1
注意:
let 的作用域在 block,block 意指 { } 這個符號,除 function 以外 if、for 的 {} 都屬於 let 的作用域。
不允許變數重覆,否則會顯示『identifier 'xx' has already been declared』
3.const常數
const box=1
設定後不能再改變,只能設定一次的內容。
運算
基礎運算
+、-、*、/、%(取餘數)
邏輯運算
||:OR
&&:AND
!:NOT
true || true
//true,在 OR 的情況下,只要左右兩邊有一情形是 true,結果就是 true
true || false
//true
3 || 10
//3,只要不是 null、0 這種空白值,就會回傳該數值,符合其中之一為 true 的條件。
false || 10
//10
false || 0
//0
true && false //false,
在 AND 情況下,要左右兩邊都是 true,結果才會是 true
true && true //true
3 && 10 //10
一定要兩邊都是 true,所以會回傳最後一個值
true && false
//false
true && true
//true
false && 3
//false
!ture //false,就是 NOT true
!false //true,就是 NOT false
位移運算
>>:右移
<<:左移
以 2 進位制為基礎作位移運算,為計算方便,右移等於總數除以 2,左移等於總數乘以 2
資料轉換型態
typeof()
檢查變數型態typeof null
會回傳object,古老的bug- 注意變數型態,需要轉換成數字,可使用number()
轉換方式 1:Number() var a = '10' var b = 20 console.log(Number(a) + b) 轉換方式 2:parseInt() console.log(parseInt(a, 10) + b) //10 指的是十進位
函式function
函式是什麼?
當在程式執行過程中,若是要重覆執行某項程序時,就可是設定函式function,將某些輸入值(參數)傳入預先設定好的處理程序,再回傳結果(值)的程序。
在網頁裡面alert(message)、prompt(message,[default]),都是內建的function。
函式種類
Function Declaration 函式宣告、陳述式
function 函式名稱(參數) {
算式/執行事項
}
function hello() {
console.log('hello')
}
Function Expressions 函式表達、運算,輸入後能回傳且將變數賦值給函式
let anonymousGreet = function(){
console.log('hi');
};
Function Constructors 函式建構
let square = new Function('number', 'return number * number');
return 函式寫法
function abc(a, b, c) {
return a + 2*b + 3*c
}
console.log(abc(1, 2, 3))
console.log(abc(1, 1, 1))
使用物件回傳的寫法
function abc(a, b, c) {
return{
answer : a + 2*b + 3*c
}
}
console.log(abc(1, 2, 3))
console.log(abc(1, 1, 1))
generateArray(3)=>[1,2,3]
generateArray(3)=>[1,2,3,....]
傳入數字幾,想要產生出幾個數字的陣列
function generateArray(n){
var result = []
for(var i = 1 ; i <= n ; i++){
result.push(i)
}
return result
}
console.log(generateArray(10))
函式命名
跟變數一樣,需要有語意的命名,通常會以動詞作為前綴搭配命名:
'get…' 回傳某值
'calc…' 計算某些內容
'create…' 創建某些內容
'is…' 檢查某些內容回傳 boolean
return不return
- 不需要知道結果
function sayHello(name){ console.log('hello',name) //預設回傳undefined return undefined } sayHello('nuck')
- 需要知道結果 範例1
function sayHello(name){ console.log('hello',name) return 123 } var a = sayHello('nick') //這邊的變數 a = 123
- 需要知道結果 範例2
function double(x){ return x*2 // return 預設回傳 undefined } var result = double(3) console.log(result)