码迷,mamicode.com
首页 > Web开发 > 详细

一道关于js声明变量,var和let的面试题

时间:2018-11-12 11:14:54      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:引用   not   pre   cti   code   语法   log   报错   变量   

 1         function aa(flag) {
 2             // var test // 变量提升,函数最顶部
 3             if(flag) {
 4                 var test = ‘hello man‘
 5             } else {
 6                 //此处访问 test 值为 undefined
 7                 console.log(test)
 8             }
 9             //此处访问 test 值为 undefined
10         }
11         aa(false);
12 
13     //结果 undefined   test被声明了  但是没有被赋值

总结: 用var声明变量时,变量提升到函数最顶部或全局最顶部。

 1         function aa(flag) {
 2             if(flag) {
 3                 let test = ‘hello man‘
 4             } else {
 5                 console.log(test)
 6             }
 7         }
 8         aa(false);
 9     
10     //结果  js运行报错 test is not defined  test没有被声明

总结: ES6语法的let声明变量时,只在{} 代码块中被声明,所以在相应代码块之外引用,会运行报错。

一道关于js声明变量,var和let的面试题

标签:引用   not   pre   cti   code   语法   log   报错   变量   

原文地址:https://www.cnblogs.com/lml2017/p/9944702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!