【JavaScript】use strict

devtools/2024/11/15 0:42:26/

“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.ppmy.cn/devtools/85572.html

相关文章

Vue el-input 中 readonly和disabled的区别详解

在 Vue.js 的 Element UI 组件库中,el-input 是一个常用的输入框组件。readonly 和 disabled 是两个常见的属性,用于控制输入框的交互行为,但它们之间存在显著的差异。下面将详细解释这两个属性的区别。 readonly 定义:readonly…

Linux系列--shell编程一

一、Linux系统结构 一、内核层 内核是Linux系统的核心部分,它负责管理系统各种硬件设备、文件系统、内存管理和进程管理等核心任务。Linux内核设计了良好的模块化结构,可以动态地加载和卸载内核模块,这使得内核可以兼容各种不同的硬件设备和…

C++(week14): C++提高:(一)面向对象设计:设计原则、设计模式

文章目录 一、面向对象设计的概念4.统一建模语言:UML语言StartUML 二、类与类之间的关系0.总结(1)类与类的五种关系(2)区别(3)面向对象 vs 基于对象 1.继承 (泛化耦合)2.组合 (Composition)3.聚合 (Aggregation)4.关联(1)双向关联(2)单向关联 5.依赖 (Dependency) 三…

元器件基础学习笔记——二极管基础

一、二极管基础 二极管是用半导体材料(硅、硒、锗等)制成的一种电子器件,具有单向导电性,是现代电子技术的基石。它在电子电路中扮演着至关重要的角色,通过与电阻、电容、电感等元器件的合理连接,能够实现整流、检波、限幅、稳压等…

Spring Task详解

文章目录 一、开启定时任务二、cron表达式 Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑 一、开启定时任务 Spring Boot 默认在无任何第三方依赖的情况下使用 spring-context 模块下提供的定时任务工具 Spring Task。我们只…

【CentOS】CentOS系统硬件信息获取脚本

CentOS系统硬件信息获取脚本 在日常的 CentOS 系统管理中,我们经常需要获取系统的硬件信息,如 CPU 核心数、内存大小、硬盘容量和操作系统版本等。本文将介绍一个简单的 Bash 脚本,通过调用系统命令来获取这些信息,并格式化输出&…

opencv - py_calib3d - py_pose 姿势估计

文章目录 Pose Estimation 姿势估计目标基础知识渲染立方体 Pose Estimation 姿势估计 目标 在本节中, 我们将学习利用 calib3d 模块在图像中创建一些 3D 效果。 基础知识 这将是一个小部分。在上一节关于相机校准的课程中,您已经找到了相机矩阵、失…

Vue3 响应式高阶用法之 `customRef()`

Vue3 响应式高阶用法之 customRef() 文章目录 Vue3 响应式高阶用法之 customRef()一、简介二、使用场景三、基本使用3.1 customRef() 的基本概念3.2 代码示例 四、功能详解4.1 防抖功能详解4.2 关键函数 track 和 trigger 五、最佳实践及案例5.1 异步更新5.2 条件性更新 六、总…