首页 > 其他 > 详细

var 为什么会被let const 替代

时间:2019-12-14 14:43:08      阅读:108      评论:0      收藏:0      [点我收藏+]

1.变量提升是指在子块中定义的变量,在某些特殊情况下(比如说上文提到的for循环就是一个子块),其作用域扩大到了父块的范围内(doSomething是一个父块),有些文章也会把他称作“变量泄漏”,是一个概念。

2.var定义变量的作用域是函数作用域,并非块级作用域(ES5没有块级作用域的概念),变量是很容易被提升的,一旦将其提升了,就会超出离他最近的方法外,暂时发现的变量提升的方法有:for循环、函数内外定义同名变量

var name =‘dkvirus‘

function test () {

console.log(name)

var name = ‘hello‘

}

test()//undifined

此时test()内的变量name=‘‘hello‘提升了,作用域范围变成了全局,将变量name =‘dkvirus’覆盖,所以显示undifined,如果用let的话,会报错变量name未initialization,而不是undifined

var 为什么会被let const 替代

原文:https://www.cnblogs.com/chengqiaoli/p/12039065.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!