JS基础----02----严格模式

顾名思义:严格模式(strict mode)就是在更严格的条件下执行,这是相比普通模式而言,栗子:普通模式下,变量不经过声明也是可以使用的,但在严格模式下,你需要乖乖的声明它的存在

Why?

严格模式的出现是为了消除Javascript语法的一些不合理、不严谨之处,消除代码运行的一些不安全之处,保证代码运行的安全,提高编译器效率,增加运行速度。"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向。
同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。----菜鸟教程

总之,严格模式要比普通模式更具有优势,更加合理,同时也减少了开发人员的“自由”,但以自由为代价换来程序稳定性,安全性的提高,我想这是非常值得的
How?

如何来使用严格模式呢?
只需要在开始处(不仅仅包括JS文件的开头哦,甚至如果你只是想在某个函数作用域内使用严格模式也是可以的)加上指令:“use strict”,他是在JavaScript 1.8.5 (ECMAScript5) 中新增的,如果在以往的旧版本中加上该指令,会被忽略掉,栗子栗子:

"use strict"
var x = 5
console.log("x: ", x)

运行结果:

x:  5
"use strict"
x = 5
console.log("x: ", x)

运行结果:

Uncaught ReferenceError: x is not defined at XXX.html:行数
//普通模式下
x = 5
console.log("x: ", x)

运行结果:

x:  5
下面的是函数中严格模式的一些栗子
//普通模式下
myFunc()
function myFunc(){
	y = 10
	console.log("y: ", y)
}

运行结果:

y:  10
"use strict"
myFunc()
function myFunc(){
	y = 10
	console.log("y: ", y)
}

运行结果:

Uncaught ReferenceError: y is not defined
    at myFunc (JS基础.html:15)
    at JS基础.html:13
"use strict"
myFunc()
function myFunc(){
	var y = 10
	console.log("y: ", y)
}

运行结果:

y:  10
严格模式中还有很多其他限制:
  1. 不允许删除变量和函数
"use strict"
var x = 10
delete x

报错:

Uncaught SyntaxError: 
Delete of an unqualified identifier in strict mode.
  1. 不允许使用八进制
  2. 不允许使用转义字符
    .
    .
    .
简而言之,严格模式下还有诸多的限制,但基本都是考虑到“严格”和安全而不得不增加的约束,为了向将来javascript的版本过渡,严格模式也添加了一些保留关键字,例如:let interface implements public static…学过一门面向对象语言的朋友会发现javascript在向面向对象发展(说实话,我感觉JS越来越像Java了)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值