【JavaScript】use strict

“use strict” 声明时,代码将会在严格模式下执⾏。严格模式包含了⼀些额外的规则和限制。

使⽤ “use strict” 的主要作⽤包括:

  1. 变量必须声明后再使⽤,不能通过不使⽤关键字创建全局变量
  2. 不能通过 delete 操作符删除变量(包括对象和函数)
  3. 不允许使⽤转义字符
  4. 不允许函数参数重名
  5. 变量名不能使⽤ eval 或 arguments
  6. 不能使⽤ 0 作为开头表示⼋进制,⽽是应使⽤ 0o
  7. 禁⽌ this 默认指向全局对象 window
  8. 不可修改对象的只读属性(writable = false)
  9. 不可使⽤ delete 操作符删除对象的不可配置属性(configurable = false)
  10. 不能修改对象中只定义了 getter() ⽆设置 setter() 的属性
  11. 不能读取对象中只定义了 setter() ⽆设置 getter() 的属性
  12. 不能使⽤ with 语句
  13. eval 不会在它的外层作⽤域引⼊变量
  14. 淘汰 arguments.callee 和 arguments.caller
  15. 增加了⼀些保留字,不能作为变量名:implements、interface、let、package、private、protected、public、static、yield。

使⽤ “use strict” 的⽅式有两种:

  1. 在 JavaScript ⽂件开头使⽤ “use strict”。
  2. 在函数体内第⼀条语句中使⽤ “use strict”。

优点:

  • 消除 JS 语法的⼀些不合理、不严谨之处,减少⼀些怪异⾏为。
  • 提⾼代码的可靠性和可维护性,避免代码运⾏时出现意外。
  • 提⾼编译器效率,增加代码运⾏速度。
    缺点:
  • IE10 以下不⽀持严格模式。
  • 由于某些库和框架可能依赖于 JS 的⼀些⾮标准⾏为,在严格模式下这些⾏为可能会失效。
  • 如今⼤部分⽹站都会对 JS 进⾏合并压缩,⼀些⽂件开启了严格模式,⽽另⼀些没有。这些原本是严格模式的⽂件被压缩后就成为了⼤⽂件的某⼀部分,不仅没有了严格模式,还在压缩后浪费了字节。

注意:ES6 的模块⾃动采⽤严格模式,不管有⽆在头部加上 “use strict”;。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀秀_heo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值