JavaScript变量提升和严格模式


1、JavaScript中,函数及变量的声明都将被提升到函数的最顶部,也就是说变量可以先使用后声明。
2、JavaScript初始化不会提升。
注:通常我们在每个作用域开始前声明这些变量,这也是正常的JavaScript解析步骤,易于理解。
另外,JavaScript严格模式不允许使用未声明的变量。
其实,我们理解了js的解析机制就行,遇到script标签js就进行预解析,将变量var和function声明提升,
但不会执行function。

JavaScript 严格模式(use strict)
它是字面量表达式,在JavaScript旧版本中会被忽略。
"use strict"只允许出现在脚本或函数的开头。
1、使用严格模式的好处
(1)消除代码运行的一些不安全之处,保证代码运行的安全
(2)提高编译器效率,增加运行速度
(3)为未来新版本的JavaScript做好铺垫
2、严格模式的限制
(1)不允许使用为声明的变量
(2)不允许删除变量或对象
(3)不允许删除函数
(4)不允许变量重名
(5)不允许使用八进制
(6)不允许使用转义字符
(7)不允许对只读属性赋值
(8)不允许对使用getter方法读取的属性进行赋值
(9)不允许删除一个不允许删除的属性
(10)变量名不能使用“eval”、“arguments”字符串
(11)由于一些安全原因,在作用域eval()创建的变量不能被调用
(12)禁止this关键字只想全局对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值