Hoisting

关于Hoisting很像是变数被拉升到上层

提升变数不会赋值var a = 2 LHSconsole.log(a) RHS

尚未宣告变数,即RHS该数值便会出现参考错误

console.log(a) //ReferenceError: a is not defined

这边Hoisting

console.log(a) //undefinedvar a = 1;var a;

Var

在学习了Let之后,尽量少用Var。原因是Var会被提升到全域变数并且被汙染,并且可以重複被宣告改赋值,造成程式错误

a = 1;var a;console.log(a) //1

compiler 会把程式看成两个叙述句

var aa = 2

Let

不能重複宣告

let u = 0let u = 1console.log(u) //SyntaxError: Identifier 'u' has already been declared

var a = 10function test(){    console.log(a)    let a //ReferenceError: Cannot access 'a' before initialization}test()

Const

Const可以看作Let的加强版,并且Const不能改变赋值

var a = 10function test(){    console.log(a)    const a //ReferenceError: Cannot access 'a' before initialization}test()

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章