學習JS的心路歷程-聲明

變量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

相關文章
相關標籤/搜索