有关作用域及变量提升

作用域:负责收集并维护由所有声明的标识符(变量) 组成的一系列查询, 并实施一套非常严格的规则, 确定当前执行的代码                 对这些标识符的访问权限。

js的变量和函数在编译阶段会被提升到当前作用域最前面编译,函数是一等公民,优先编译函数,js是按照script块编译的 

1. 只有声明的变量会提升,初始化的不会,JavaScript 严格模式(strict mode)不允许使用未声明的变量。

例如

var a=1

根据变量提升规则 var a,会被优先提升到作用域的顶部,之后会按照顺序执行 直到a=1执行完毕

所以 

 function print(){
	 console.log(a)
	 var a=3
 }
 print()

 print()执行结果为 //undefined

2. 函数提升比变量提升优先级高

例如

 function t1(age) {
        console.log(age);
        var age = 27;
        console.log(age);
        function age() {}
        console.log(age);
    }
    t1(3);

第一个console输出的是 //function age() 

第二个console输出的是 //27

第三个console输出的是 //27

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值