您的位置:首页技术文章
文章详情页

JS中var let声明范围区别详解

【字号: 日期:2022-06-12 17:48:50浏览:7作者:猪猪
目录var声明提升var可以重复声明同一个变量var全局声明作用域var声明提升console.log(name) //土豆var name = '土豆';

使用var声明的变量会自动提升到函数作用域的顶部

function foo(){ console.log(name); var name = '土豆';}foo() //undefined//等价于function foo(){ var name; console.log(name); name = '土豆';}foo(); //undefinedconsole.log(name) //ReferenceError name没有被定义let name ='土豆';

而使用let定义的name不会被提升,报出ReferenceError的错误;

var可以重复声明同一个变量var name = '番茄';var name = '西瓜';var name = '土豆';console.log(name);//土豆

而使用let重复声明同一个变量会报错。

var name = '土豆';let name = '土豆';console.log(name);//'name' has already been declaredlet name = '土豆';var name = '土豆';console.log(name);//Cannot redeclare block-scoped variable 'name'.var全局声明var name = '土豆';console.log(window.name);//土豆let age = '24';console.log(window.age); //undefined

使用var定义的变量会被挂载到window上,成为window对象的属性,而使用let不会。

作用域if(true){ var name = '土豆'; console.log(name);}console.log(name);//土豆//土豆if(true){ let age = 24; console.log(age);}console.log(age);//24//undefined

使用var声明的范围是函数作用域,使用let声明的范围是块作用域。

以上就是JS中var let声明范围区别详解的详细内容,更多关于JS var let声明范围区别的资料请关注好吧啦网其它相关文章!

标签: JavaScript