let用於宣告變數,但是只在最近的**塊之內有效。
for
(i=0;i<2;i++)
alert
(b) //20
alert
(a) //a is not defined
function test()
test()
; function s()s(
);function s()s(
);
function func(arg)
func()
;function func2(arg)
//不報錯
}func2()
;
1.外層**塊不收內層**塊的影響
var a = 5;
if(true)
alert
(a); //5
2.有三層塊級作用域,前面的作用域不可以訪問最內層的a
}}
}alert
(a); //5}}
}
3.考慮到環境導致的行為差異太大,最好寫成函式表示式,而不是函式宣告語句。
// 塊級作用域內部的函式宣告語句,建議不要使用
}// 塊級作用域內部,優先使用函式表示式
;}
1、const宣告乙個唯讀的常量。一旦宣告,常量的值就不能改變。
if(true)
alert
(a); //報錯:找不到
if(true)
const a = 5;
const a = 4; //報錯:a已經被宣告過了
2、本質
並不是變數的值不得改動,而是變數指向的那個記憶體位址所儲存的資料不得改動。對於簡單型別的資料(數值、字串、布林值),值就儲存在變數指向的那個記憶體位址,因此等同於常量。
對於復合資料型別,我們可以對它使用一些方法,但不可直接賦值。
(1)var和function
宣告的全域性變數,依舊是頂層物件的屬性
(2)let和const屬性
宣告的全域性變數,不屬於頂層物件的屬性
(3)import命令和class命令
ES6學習2章 let和const命令
用於宣告變數,類似於var,但let命令所在的 塊內有效 特點 只在 塊內有效 不存在變數提公升 必須先宣告後使用,否則會報錯 暫時性死區 不允許重複宣告 用let宣告的變數只在當前塊 中有效,在塊級作用域外是拿不到的 console.log a reference errores5中 var宣告的...
ES6學習 let和const命令
1.let命令 所宣告的變數命令所在 塊有效 a referenceerror a is not defined.b 1for迴圈的計數器,就很適合let命令 for let i 0 i arr.length i console.log i referenceerror i is not defin...
ES6 一 let和const命令
在js中是沒有塊級作用域的,var 宣告的變數作用域是整個函式體,而let可以起到這一作用 console.log b 2 console.log a a is not defind 而let可以起到這一作用啊在js中變數和函式的宣告會提公升到當前作用域最頂部執行。這樣就會出現問題。var a 函式...