跟我学习javascript的严格模式

yizhihongxing

接下来我将为大家详细介绍“跟我学习JavaScript的严格模式”的完整攻略。

什么是严格模式

严格模式是JavaScript的一种运行模式,通过严格模式可以对代码的执行进行限制,使代码更加严谨,减少出错的可能性。在ES5中, JavaScript引入了严格模式概念,它是一组限制 JavaScript语言的特性。在严格模式中,一些在正常模式中默许的行为,会被视为错误,在代码执行过程中就会抛出错误。

要开启 JavaScript 严格模式,只需在代码最上方或函数内第一行添加如下语句:

'use strict';

开启严格模式的好处

严格模式在一些情况下可以提高 JavaScript的执行效率,避免一些怪异行为的发生,防止代码出现一些潜在错误,并且可以更加安全地使用一些全局变量、函数等。

以下是开启严格模式的主要好处:

  • 消除 JavaScript语法的一些不合理、不严谨之处,减少一些怪异行为。
  • 消除代码运行的一些不安全之处,保证代码运行的安全。
  • 提高编译器效率,增加运行速度。
  • 禁用了在ECMAScript的未来版本中可能会定义的一些语法,为未来新版本的 JavaScript做好铺垫。

严格模式的限制和注意点

开启严格模式后,JavaScript的执行将容错能力降低,对一些无效的行为或使用不当的语法将发出警告或直接报错。比如:

  • 变量必须先声明后使用,未声明即使用的变量会抛出错误。
  • 禁止删除不可删除的属性。
  • 函数的参数名称不能重名。
  • 对象中定义重名的属性会抛出错误等等。

还有一些需要注意的地方:

  • 严格模式下this的值不再是指向全局对象,而是undefined。因此,在严格模式下调用函数时,没有指定this的值,this将为undefined,这样就避免了在不使用this关键字的情况下调用函数时的错误问题。
  • 严格模式下,多次声明同一个变量会报错。
  • 严格模式下,eval在其所处的作用域内执行,而不是在全局作用域内执行。
  • 严格模式下,禁止使用with语句。

如何使用严格模式

在全局作用域使用严格模式

要在全局作用域中使用严格模式,需要将严格模式的代码放在所有代码的最上方,即在JavaScript程序的第一行添加如下语句:

'use strict';

在函数作用域使用严格模式

可以在函数定义中使用严格模式,这将限制该函数的执行,常用于一些高级函数中。

function strictFunc() {
  'use strict';
  // 函数体中的代码将按照严格模式执行
}

严格模式下的示例

例1:禁止重复定义的函数

在 JavaScript 的正常模式下,可以在函数中重复定义同名的函数,后者会覆盖掉之前的函数。但是在严格模式下,如果在函数中定义了同名的函数,在执行到重复定义的函数时,将会直接抛出错误。以下是示例代码:

'use strict';

function foo() {
  console.log('foo1');
}

// 这里会抛出异常:重复定义的函数
function foo() {
  console.log('foo2');
}

foo();

在上面的例子中,运行foo函数时,会发生TypeError的错误。这是因为在严格模式下,函数 foo()已经在环境中定义,不能重复定义。

例2:避免this关键字的隐式绑定

在 JavaScript 之中,this关键字的值是在函数被调用时确定的。在非严格模式下,如果this关键字在函数中被省略了,那么this指向的是全局对象window。而在严格模式下,如果在函数中省略了this关键字,那么this指向的不再是全局对象window,而是undefined。以下是示例代码:

'use strict';

function foo() {
  console.log(this); // undefined
}

foo();

在上面的示例代码中,函数foo中没有传入this参数,因此在严格模式下,this将指向undefined,不再是非严格模式下的全局对象window。

结论

通过本文的介绍,我们可以了解到JavaScript严格模式的概念、好处、限制和注意点以及如何使用严格模式,同时也看到了严格模式下的示例。在实际开发中,要尽可能地使用严格模式,从而保证JavaScript代码的严谨性和安全性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:跟我学习javascript的严格模式 - Python技术站

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

相关文章

  • JS弹出窗口代码大全(详细整理)

    针对JS弹出窗口代码大全(详细整理)这篇攻略,我来详细讲解一下。 1. 标题分析 在这篇攻略中,首先我们可以看到一个一级标题——JS弹出窗口代码大全(详细整理)。根据标题中的关键词,我们可以猜测到这篇攻略将会介绍一些JS弹出窗口的实现代码,并且可能是一个包含多篇文章的系列攻略。 2. 掌握目录结构 接下来,我们可以看到一个二级标题——目录。在这个二级标题下,…

    JavaScript 2023年5月27日
    00
  • JS实现网页抢购功能(触发,终止脚本)

    JS实现网页抢购功能可以基于浏览器的自动化工具,如selenium或者puppeteer,完成批量请求或模拟用户行为。在实现过程中,需要明确以下几个步骤: 登录并保持会话:在许多电商网站中,进行抢购之前首先需要登录账户。可以通过模拟登录的方式,实现自动输入账号密码并完成登录。在登录完成之后,需要保持会话以便于提交订单等后续的操作。 找到目标商品页面:一般情况…

    JavaScript 2023年6月10日
    00
  • js插件方式打开pdf文件(浏览器pdf插件分享)

    下面是关于“js插件方式打开pdf文件(浏览器pdf插件分享)”的完整攻略: 1. 准备工作 在实现该功能前,需要将需要打开的pdf文件上传到服务器,并记住该文件的访问地址。 2. 确认浏览器是否支持pdf插件 首先,需要确认当前浏览器是否提供了自带的pdf插件或者是否安装了第三方的pdf插件。 可以让用户打开一个测试页面,例如: <!DOCTYPE …

    JavaScript 2023年5月27日
    00
  • javascript 产生随机数的几种方法总结

    下面我将详细讲解“javascript 产生随机数的几种方法总结”的完整攻略。 1. Math.random()方法 介绍 Math.random() 方法用于返回一个0~1之间的随机浮点数。 语法 Math.random() 示例 // 返回0~1之间的随机数 const randomNum = Math.random(); console.log(ran…

    JavaScript 2023年5月28日
    00
  • 浅析location.href跨窗口调用函数

    下面是关于“浅析location.href跨窗口调用函数”的完整攻略。 简介 在web开发中,常常需要在不同的窗口之间进行数据传递,这时候可以使用JavaScript中的location.href属性实现。location.href属性可以获取和设置当前窗口的url,并且可以跨窗口传递数据。 实现过程 要在当前窗口和目标窗口之间进行数据传递,需要以下步骤: …

    JavaScript 2023年6月11日
    00
  • js函数柯里化的方法和作用实例分析

    下面是 JS 函数柯里化的方法和作用实例分析的攻略: 什么是函数柯里化 函数柯里化是一种将接受多个参数的函数转换为接受一个单一参数的函数,并返回一个新的函数的技术。这个新函数能够接着接受剩下的参数,直到接收到所有参数为止。 举个例子,假设有一个 sum 函数可以接受多个数值参数: function sum(a, b, c) { return a + b + …

    JavaScript 2023年5月28日
    00
  • asp.net 设置GridView的选中行

    当我们在使用ASP.NET开发Web应用程序时,经常会用到GridView控件来显示数据。在GridView中选中某一行并进行操作,是在Web开发中常见的需求。在这里,我将向您介绍一种完整的方法来实现在ASP.NET中设置GridView的选中行。该方法以C#语言为例进行示范。 1. 设置GridView的选中行 对于设置GridView的选中行,我们可以通…

    JavaScript 2023年6月11日
    00
  • js与flash的交互FLASH连播控制器

    JS与Flash的交互是Web开发中的一个重要话题,而Flash连播控制器是JS与Flash交互的一个典型应用。下面是JS与Flash交互FLASH连播控制器的完整攻略: 必要的准备工作 在实现JS与Flash交互前,我们需要先进行必要的准备工作。首先,我们需要安装Flash开发工具(如Adobe Animate CC);其次,我们需要创建一个Flash动画…

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