作用域的概念
es5 兩個(gè)作用域:全局作用域、函數(shù)作用域
es6 增加了塊作用域
let
- let var 作用域不同,let 只在塊級作用域有效
- 使用 es6 強(qiáng)制開啟嚴(yán)格模式,未聲明會報(bào)錯(cuò);es5 中使用 "use strict"
- let 不能重復(fù)定義變量
function test(){
for(let i=1;i<3;i++){ // 塊級作用域
console.log(i);
}
console.log(i); // 報(bào)錯(cuò):Uncaught ReferenceError: i is not defined
}()
function test1(){
for(var i=1;i<3;i++){ // 函數(shù)作用域
console.log(i);
}
console.log(i); // 1 2 3
}()
const
- 聲明常量,不能修改。
- const 也有塊級作用域。
- 聲明時(shí)必須賦值。
- 數(shù)值不允許修改;引用類型賦值,存的是指針,指針不能變,但是引用類型可以變。
function last(){
const PI=3.1415926; // const 聲明常量
const k={ // const 聲明對象,指針沒變,但可以改變對象內(nèi)容
a:1
}
k.b=3;
console.log(PI,k);
}()