js严格模式总结(分享)

JS严格模式总结(分享)

JS严格模式,也叫做严格模式,是ES5中定义的一种JS运行的模式。它可以让代码在更加安全的环境下运行,且更加严格地执行代码。本文将为您详细讲解JS严格模式的使用、注意事项以及相关示例。

使用严格模式的方法

使用严格模式只需要在JS代码的开头添加'use strict';即可,例如:

'use strict';
function foo(){
  // 具体代码
}

注意事项

在严格模式下,JS中的一些原有行为将被改变或者被彻底禁用掉,这也是使用严格模式需要注意的地方:

  1. 严格模式禁止使用不安全的语句(如eval和with语句),这两个语法在严格模式下会抛出错误。
  2. 严格模式下,尝试写入一个只读属性会抛出TypeError。
  3. 在strict模式下函数必须声明已定义的变量后使用,否则将抛出ReferenceError错误。如下例:
'use strict';
a = 1;  // 会抛出ReferenceError错误
 ```

4. 匿名函数不能用作构造函数使用,否则会抛出TypeError错误,如:

'use strict';
var a = new function(){ //TypeError: undefined is not a constructor
this.name = '匿名';
}


## 严格模式使用示例

### 禁止删除对象的属性

在严格模式下,尝试删除一个对象的属性时(`delete object.property`),如果属性不存在,会抛出一个错误。如下例:

'use strict';
var obj = {
name: '张三'
}
delete obj.name; //成功删除
delete obj.age; //抛出错误


### 禁止函数的重复定义

在严格模式下,函数名(包括匿名函数)的重复定义被视为错误。因此,以下代码会抛出SyntaxError错误:

'use strict';
function foo(){}
function foo(){} //SyntaxError: Identifier 'foo' has already been declared
```

结论

通过使用JS严格模式,我们可以更加安全地运行代码,提高代码的健壮性,并且避免一些常见的安全漏洞。在实际开发中,建议使用严格模式进行开发和编码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js严格模式总结(分享) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS实现页面跳转与刷新的方法汇总

    下面就来详细讲解一下“JS实现页面跳转与刷新的方法汇总”的完整攻略。 1. 实现页面跳转的方法 1.1 使用 window.location.replace 方法实现页面跳转 使用 window.location.replace 方法可以在不记录浏览器历史记录的情况下,实现页面跳转,具体代码如下: window.location.replace(‘https…

    JavaScript 2023年6月11日
    00
  • 详解JSON Web Token 入门教程

    题目中提到的“详解JSON Web Token 入门教程”的完整攻略,应该包括以下内容: 1. 什么是JSON Web Token 首先,我们需要明确JSON Web Token(JWT)是什么。JWT是一种用于身份验证的开放标准,它允许在网络上传输数据,以确保数据在传输过程中不会被篡改。JWT通常用来描述两个系统之间的请求和响应之间的详细信息。 2. JW…

    JavaScript 2023年5月27日
    00
  • js判断浏览器是否支持严格模式的方法

    判断浏览器是否支持严格模式,我们可以通过以下两种方法来实现。 方法一 我们可以使用try…catch语句,在try语句中编写一个无法在严格模式下执行的代码,然后在catch语句中捕获错误,如果没有捕获到错误就代表浏览器支持严格模式。 示例代码: var isStrictMode; try { eval("’use strict’; var x …

    JavaScript 2023年6月10日
    00
  • moment.js 时间日期处理详解

    Moment.js 时间日期处理详解 简介 Moment.js 是一个 JavaScript 库,可以用于解析、验证、操作和格式化日期和时间。它拥有灵活的 API 和许多可定制的选项,可以让我们轻松地处理各种日期和时间格式。而且它还提供了一个易于使用的插件体系,可以为我们提供更多的功能。 安装和使用 Moment.js 可以通过 npm 安装: $ npm …

    JavaScript 2023年5月27日
    00
  • 详细谈谈JS中的内存与变量存储

    JS中的内存与变量存储 内存的概念 在JS中,变量都是存储在内存中的。内存是计算机硬件中的一种可读写数据存储器,它用来存储计算机正在运行的程序、运行时所需要的数据以及运行之后产生的结果。在JS中,内存分为堆内存和栈内存两种。 栈内存 栈内存是一种连续的内存空间,可以自动分配和释放,其中存储函数的局部变量、函数参数、函数的返回值、对象的引用等。当函数运行结束或…

    JavaScript 2023年6月11日
    00
  • 如何使Chrome控制台支持多行js模式——意外发现

    下面是讲解“如何使Chrome控制台支持多行js模式——意外发现”的完整攻略: 1. 问题描述 当我们在Chrome控制台输入多行的JavaScript代码时,按下回车键后会将当前行代码执行。如果我们输入多行代码,需要将所有输入的代码都复制到单行去将它们一起执行。这不仅耗时,操作起来也不太方便。那么有没有办法支持多行JavaScript模式呢? 2. 解决方…

    JavaScript 2023年6月11日
    00
  • 深入理解JavaScript中的语法和代码结构

    深入理解JavaScript中的语法和代码结构是成为一个优秀的JavaScript开发者必须掌握的基本技能之一。下面,我将为大家详细讲解如何来攻略这一难点。 学习语法 理解JavaScript的语法是学习JavaScript的关键。以下是一些建议,建议按照这些步骤进行学习: 1. 确立基础概念 在开始学习语法之前,必须要先掌握JavaScript中的基本概念…

    JavaScript 2023年5月19日
    00
  • js实现prototype扩展的方法(字符串,日期,数组扩展)

    下面我将详细讲解一下“js实现prototype扩展的方法(字符串,日期,数组扩展)”的完整攻略。 什么是prototype 在 JavaScript 语言中,每个对象都可以拥有一个 prototype 属性,用于指向其原型对象。原型对象是一个普通的对象,它包含了该对象的共有属性和方法。这个原型对象本身也可以有其自己的原型,构成了原型链,从而实现了 Java…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部