当前位置: 首页 > news >正文

【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”;。

http://www.lryc.cn/news/407033.html

相关文章:

  • Linux云计算 |【第一阶段】SERVICES-DAY3
  • Java面试八股之Spring-boot-starter-parent的作用是什么
  • Python 和 Boto3 生成 Amazon S3 对象的 HTTPS URL
  • V-bind动态绑定style的案例集合
  • 深度学习守护夜行安全:夜视行人检测系统详解
  • 亚信安慧AntDB亮相PostgreSQL中国技术大会,获“数据库最佳应用奖”并分享数据库应用实践
  • 如何减少白屏的时间
  • 科研成果 | 高精尖中心取得高性能区块链交易调度技术突破
  • go语言学习文档精简版
  • 立元科技-Java面经
  • OpenGL入门第六步:材质
  • 新版SpringSecurity5.x使用与配置
  • JavaScript实战 - JavaScript 中实现线程锁
  • 基于PaddleClas的人物年龄分类项目
  • 20240725java的Controller、DAO、DO、Mapper、Service层、反射、AOP注解等内容的学习
  • dynslam的安装
  • stats 监控 macOS 系统
  • 后端面试题日常练-day05 【Java基础】
  • mac|安装PostgreSQL
  • 内网对抗-隧道技术篇防火墙组策略FRPNPSChiselSocks代理端口映射C2上线
  • arinc664总线协议
  • UNIX 域协议
  • 昇思25天学习打卡营第17天|LLM-基于MindSpore的GPT2文本摘要
  • Clion开发STM32——移植FreeModbus
  • c++栈笔记
  • Oracle配置TCPS加密协议测试
  • Jetpack Compose 通过 OkHttp 发送 HTTP 请求的示例
  • Pytorch使用教学3-特殊张量的创建与类型转化
  • 【日记】办个护照不至于有这种刑事罪犯一样的待遇吧……(737 字)
  • 【矩阵微分】在不涉及张量的前提下计算矩阵对向量的导数并写出二阶泰勒展开