关于var、let和const

本文详细对比了JavaScript中var、let及const三种变量声明方式的区别。包括它们的作用域特性、预解析行为以及重新声明等问题,特别强调了const声明的不可变性。

var/let/const都用来声明变量,但各有区别。

使用var会弹出“3”,可见在块外,块中定义的变量i仍然是可以访问的。也就是说,使用var声明变量是不支持块级作用域,容易泄露成为全局变量。它只支持函数作用域,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。使用var可能会导致内层变量覆盖外层变量。而let只在代码块内有效。

用let将var替换后,会报错Uncaught ReferenceError: i is not defined。

使用var声明变量,在执行前会进行预解析。而let不会,它所声明的变量一定要在声明后使用,否则报错,并且let不允许在相同作用域内,重复声明同一个变量。

//------------------------------关于const------------------

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值,即声明不赋值,就会报错。与let一样在块级作用域内有效,不会预加载。

关于let和const更多的讲解可参见:http://es6.ruanyifeng.com/#docs/let

 

转载于:https://www.cnblogs.com/a-xiongzjh/p/7009946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值