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

js 面试题总结 3

时间:2018-11-10 10:54:24      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:变量   not   创建   作用   形式   一个   bsp   fine   总结   

1 console.log(a); // undefined
2 var a = 12; // 12
3 function fn() {
4   console.log(a); // undefined
5   var a = 13; // 13
6 }
7 fn();
8 console.log(a); // 12
  1. 创建全局作用域;
  2. 变量提升,声明一个 a 变量、定义一个函数 fn;
  3. 执行代码;( 变量 a 已提升但未赋值,所以 a = undefined,输出 a 值为 undefined,设置 全局变量 a = 12 )
  4. 执行 fn,形成一个私有作用域 fn ;
  5. 私有作用域中的执行过程为:
    1)形式参数赋值。没有形式参数;
    2)变量提升。提升变量 a ;(私有作用域中,如果定义了变量,那么所有的相同变量名都是同一个)
    3)执行代码。局部变量 a已提升还未赋值,所以是 undefined,输出 a 值为 undefined,设置局部变量 a = 13 ;
  6. 输出全局变量 a 值 为 12;

 


 

1 console.log(a); // undefined
2 var a = 12; // 12
3 function fn() {
4   console.log(a); // 12
5   a=13; // 13
6 }
7 fn();
8 console.log(a); // 13
9 // 结果为 undefined 、12 、13

 

 

 1 console.log(a); // a is not defined
 2 
 3 a=12;
 4 function fn() {
 5   console.log(a);
 6   a = 13;
 7 }
 8 fn();
 9 console.log(a);
10 // a is not defined

 

js 面试题总结 3

标签:变量   not   创建   作用   形式   一个   bsp   fine   总结   

原文地址:https://www.cnblogs.com/lvyongbo/p/9938155.html

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