Javascript 严格模式use strict详解

yizhihongxing

Javascript 严格模式 "use strict" 详解

在Javascript中,严格模式是一种让JS引擎运行更加严格的模式。当你在代码的顶部使用 "use strict" 语句时,它将强制遵守一些额外的JavaScript规范,减少了代码中的错误和不必要的语法。本文将进一步解释什么是 "use strict",以及它针对代码的影响。

为什么要使用严格模式?

启用严格模式有两个主要原因:

  1. 作为一种最佳实践,可以帮助避免一些普通的JS错误。
  2. 它使得JS引擎在尝试优化代码时能够更好地执行,并提高了代码的可读性和可维护性。

如何启用严格模式?

要启用JavaScript的严格模式,只需在文件开头添加以下代码:

"use strict";

严格模式的限制

使用严格模式,会有一些限制:

  1. 添加 use strict 语句的文件开头,不能有 script标记,否则会导致程序无法运行。
  2. 不能使用未声明的变量,否则会引发错误。
  3. 不允许在静态对象中添加属性或函数。
  4. 所有的参数名称必须唯一。

以下是两个示例,更好地说明了严格模式的限制:

'use strict';

// 示例1 - 对未声明变量进行赋值,将导致程序抛出异常
function test() {
  x = 7; 
}
test();

// 示例2 - 一些操作将会被禁止
var obj = {};
Object.defineProperty(obj, "prop", {value: 42, writable: false});
obj.prop = 13; // 抛出类型错误异常 

严格模式的优化

在严格模式下,编译器可以执行一些优化以提高代码的性能和质量。例如,对于未声明的变量,编译器会直接抛出异常,此外还可以防止对象在进行更改时被意外污染。以下是一个示例,说明严格模式如何防范代码污染。

'use strict';

// 示例 - 防止意外污染全局对象
var obj = {
  prop: 42,
  incProp: function() {
     this.prop++;
  }
};

obj.incProp();
console.log(obj.prop); // 43

delete obj.prop; // 删除对象属性
console.log(obj.prop); // undefined 

在不是严格模式的情况下,可能意外删除全局变量的属性,因为在非严格模式下,全局对象被认为是默认对象。而在严格模式下,全局对象不是默认对象,所以不能修改和意外删除全局对象的属性。

总结

JavaScript 严格模式通过对代码的限制和优化,提高了代码的可读性、可维护性和执行效率,使代码更加规范和安全。理解这些规范与限制对于提高JS开发的技能至关重要。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 严格模式use strict详解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 微信小程序实现循环动画效果

    下面是关于“微信小程序实现循环动画效果”的完整攻略: 1. 准备工作 在开始实现动画效果之前,我们需要进行一些准备工作。首先,在小程序的根目录下创建一个名为“animations”的子目录,用于存放所有的动画帧图片。然后,在小程序的根目录下的app.json文件中,引入需要使用的图片资源。例如: "pages": [ "page…

    JavaScript 2023年6月11日
    00
  • js绘制购物车抛物线动画

    下面我将详细讲解一下如何使用JavaScript绘制购物车抛物线动画的完整步骤。 步骤一:创建抛物线数据 为了实现抛物线动画,我们需要先创建一些抛物线的数据。如下代码所示: function getBesselPoint(x1, y1, x2, y2, x3, y3, t) { var cx = 3 * (x2 – x1), bx = 3 * (x3 – x…

    JavaScript 2023年6月10日
    00
  • JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)

    下面是关于JavaScript高级程序设计阅读笔记(五)ECMAScript中的运算符(一)的完整攻略。 标题 JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一) 简介 本篇文章主要介绍ECMAScript中的运算符。在JavaScript中,运算符是用于执行各种算术、比较和逻辑操作的符号。本文将介绍相应的运算符及其优先级。…

    JavaScript 2023年5月27日
    00
  • JavaScript与java语言有什么不同

    JavaScript和Java是两种不同的编程语言,虽然它们名字相似,但是它们有很多不同之处。下面将详细讲解JavaScript和Java之间的不同之处。 概述 首先,JavaScript和Java的发展历史和目的不同。Java是一种面向对象的编程语言,最初是为了解决嵌入式系统的开发问题而诞生的。而JavaScript是为了给 Web 页面添加动态交互效果而…

    JavaScript 2023年5月18日
    00
  • Js 时间函数getYear()的使用问题探讨

    当我们在使用JavaScript处理时间时,可能会遇到一些问题。其中一个问题是关于getYear()时间函数的使用问题。在本文中,我们将深入探讨这个问题并提供解决方案。 问题描述 在JavaScript中,getYear()时间函数用于获取年份的后两位数字。但是,这个函数有一个问题,它会返回一个相对于 1900 年的年份值。换句话说,如果我们调用getYea…

    JavaScript 2023年5月27日
    00
  • js使用文件流下载csv文件的实现方法

    要实现通过 JavaScript 使用文件流下载 CSV 文件可以按以下步骤进行: 第一步:构造数据 首先需要将要下载的 CSV 文件内容组织成符合格式的数据,可以使用字符串拼接或者使用第三方库生成: const data = [ [‘姓名’, ‘性别’, ‘年龄’], [‘张三’, ‘男’, ’20’], [‘李四’, ‘女’, ’22’], [‘王五’,…

    JavaScript 2023年5月27日
    00
  • JavaScript类型相关的常用操作总结

    以下是关于“JavaScript类型相关的常用操作总结”的详细说明。 一、JavaScript类型 JavaScript中共有七种内置类型,分别为: 原始类型(Primitive types):布尔(Boolean)、数字(Number)、字符串(String)、空值(Null)、未定义(Undefined)、Symbol。 对象(Object):包括可以简…

    JavaScript 2023年6月10日
    00
  • 硬盘浏览程序,保存成网页格式便可使用

    这里我们将详细讲解如何使用“硬盘浏览程序”将网站保存成网页格式。请按照以下步骤进行操作: 步骤一:下载硬盘浏览程序 首先你需要下载一个名为“硬盘浏览程序”的工具,这个工具可以允许你在本地计算机上浏览网站。你可以在以下链接中下载该软件:https://www.allsimple.net/hdd-1015.shtml 步骤二:安装硬盘浏览程序 下载后,你可以直接…

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