變量javascript
在程序中將一個值指定(assign)給一個符號式的容器(symbolic container),叫作一個變量(variable)。html
聲明
在JS中目前提供了三種聲明方式:java
vargit
聲明一個變量,可選擇是否給予一個初始值。es6
做用範圍(scope)於該函式以內;可是若是在函式外聲明,其做用範圍則爲全局性(global)。ide
var price = 10;ui
price = price * 2;code
console.log(price);htm
let(ES6新增)ip
聲明一個內存塊範圍(scope)內的本地變量,可選擇是否給予一個初始值。
let prices = 10;
if(prices === 10){
let prices = 20;
console.log(prices);// 20
}
console.log(prices);// 10
const(ES6新增)
聲明一個只能讀取內存塊範圍(scope)內的本地變量。
const price = 10;
console.log(price);//10
price = 20;//Uncaught TypeError: Assignment to constant variable.
若是在聲明時候未給予值,JS會預設爲undefined(除了const)
var a;
console.log(a)//undefined
let b;
console.log(b)//undefined
const c;
//Uncaught SyntaxError: Missing initializer in const declaration
命名規則
在命名時候須要注意下面幾點規則:
開頭不能數字
英文大小寫是有區分的
不可以使用保留字元
在MDN中有列出了哪些是JS的保留字元。
函式
程序拆解成可重複使用的片斷
具名代碼片斷(a named section of code)能夠藉由名稱來呼叫執行。
可選擇是否接受參數(arguments即參數(parameters))
聲明
函式由三個關鍵字組成,依序是:
名稱
參數列表
大括號{}
這邊舉個例子:
function totalPrice(number,price){
return number*price
}
totalPrice(2,20)
函式totalPrice使用了兩個參數number和price,兩着相乘後透過return回傳其值。
函式一般會有回傳值,但並不是每種函式都須要回傳值,也有可能利用輸出的方式來輸出結果。
function totalPrice(number,price){
console.log(number*price)
}
totalPrice(2,20)//40
在聲明函式時能夠選擇不撰寫名稱,這將會使函式成爲一個匿名函式,一般做爲一個指定值,指定給一個變量後,該變量便成爲了這個匿名函式的名稱。
var total = function(number,price){
console.log(number*price)
}
total(2,20)//40
以函式做爲參數傳入
在JS中也能將函式作完參數傳入到另外一個函式,並且在函式的最後也能夠回傳函式。這種函式的結構稱之爲高階函式(Higher-order function)。咱們常聽到的callback就是高階函式的應用,不過這會在很後面才提到。在這邊只須要了解函式也能看成參數便可。
var total = function(count,fn){
return fn(count)
}
var price = function(count){
return count * 20
}
console.log(total(10,price))//200
參考資料:
變量、常數與命名
https://eyesofkids.gitbooks.io/javascript-start-from-es6/content/part3/function_scope.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Statements