比如:
var one=10;
if(true)
console.log(one) ; //10 因為再上面使用let定義的one只在上面那個**塊中有效,不影響外面的
這裡說的**塊就是乙個{}包起來的範圍就是乙個**塊
如:
const two=20;
two=10; // 報錯,這樣就等於改變了它原來指向的位址了
const arr=[1,2,3];
arr[1]=5; //這樣修改不會有問題,因為沒有修改arr位址的指向,所以ok
//函式也是如此
1:掛載:使用var宣告的變數缺省會掛載到window上,let和const不會
2:變數提公升:使用var宣告的變數會有變數提公升,let和const不會
3:塊級作用域的產生:使用let和const宣告會形成塊級作用域,只在當前塊級作用域有效,使用var宣告的不會產生塊級作用域,只會有函式內和函式外的作用域
4:暫存死區:如果再乙個塊級作用域給乙個再當前作用於有使用let/const宣告的同名變數提前賦值時,會報錯 ;如下
var a = 100;
if(true)
5:同名變數:再同一**塊中,let/const不能宣告同名變數,var可以 ES6 模組簡單解釋
modules是es6引入的最重要的乙個特性。以後寫模組的時候就直接按照es6的modules語法來寫 然後用babel browserify 來打包就行了。modules規範分兩部分,一部分是如何匯出,一部分是如何匯入。export const sqrt math.sqrt export func...
es6的map 方法解釋
map方法的作用不難理解,即 對映 也就是原陣列被 對映 成對應新陣列。下面這個例子是數值項求平方 var data 1,2,3,4 var arrayofsquares data.map function item alert arrayofsquares 1,4,9,16 callback需要有...
es6的map 方法解釋
map方法的作用不難理解,即 對映 也就是原陣列被 對映 成對應新陣列。下面這個例子是數值項求平方 var data 1,2,3,4 var arrayofsquares data.map function item alert arrayofsquares 1,4,9,16 callback需要有...