JS严格模式实例讲解

本文主要给大家整理了js严格模式下的相关知识点以及代码实例分享,感兴趣的跟着小编一起学习下吧,希望能帮助到大家。

所谓严格模式其实就是一个不会赋值给任何变量的字符串 “use strict”

如果在全局作用域下 给出这个提示,那整个脚本将采用严格模式。也可以只在函数中打开严格模式

1.严格模式下没有全局变量

a=”test”

严格模式下会报错,非严格模式下正常

2.删除变量

var 有三种声明的情形

var 声明的全局变量

var 声明的局部变量

eval()中声明的全局变量

第一种和第二种情况是无法用 delete删掉的。

首先第一种情况声明的全局对象虽然是windows的属性,但这个属性的configurable=false 因此是无法删除的

第二种情况 局部变量更不行了,连依附的对象是谁都不知道,怎么删除

第三种情况eval()稍后会说到。

回归正题。也就是说非严格模式下,可以删除变量,但是会失败返回false.

严格模式下删除变量会报错。

3.对象

在下列情况下操作对象会报错

为只读属性赋值会报错

对不可配置的属性使用delete 会报错

为不可扩展的对象添加属性会报错

在使用对象字面量的时候,属性名必须唯一。比如

var person={  name:"1",  name:"2"}

登录后复制

非严格模式下会默认取值第二个,严格模式下会报错。

4.函数

严格模式要求函数参数名称必须唯一

function(n,n){  // todo}

登录后复制

在非严格模式下,这个函数声明不会报错,通过参数名只能访问到第二个参数,第一个参数得通过arguments去访问。

arguments在两种模式下也有所不同

在非严格模式下,修改命名参数的值会反映到arguments对象中,在严格模式下两个值是独立的。

淘汰了 arguments.callee(引用函数本身),arguments.caller(引用调用函数)。

严格模式下函数名不能使用js保留字

**严格模式下只能在脚本的顶级和在函数内部声明函数,在if语句中声明函数会导致语法错误。**

if(true){  function(){   // 严格模式下报错}}

登录后复制

5.this

在非严格模式下使用函数的apply(),call(),传入null 或者undefined值会被转换为全局对象。在严格模式下,函数的this始终是指定的值,无论指定的是什么值。

var a="1";function test(){ console.log(this.a)}test.call(null) 在非严格模式下会输出1,严格模式下this就指代的就是null,null没有a属性,就会报错。

登录后复制

 相关推荐:

JS的解析顺序和作用域以及严格模式的简单介绍

js的解析顺序作用域严格模式的解析

有关JavaScript严格模式下this的指向问题详解

以上就是JS严格模式实例讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2785510.html

(0)
上一篇 2025年3月8日 17:27:08
下一篇 2025年3月6日 09:34:58

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • js函数相关知识点总结分享

    在js中,引用类型是一种数据结构,包含5种引用类型,分别是object,data,array,re请输入代码gexp,function。今天我们就说function这种数据结构。 在js种函数实际上是对象,每个函数都是Function类型的…

    编程技术 2025年3月8日
    200
  • angularJS动态添加、删除div代码分享

    要实现的功能类似下图,动态添加或者删除p,本文主要和大家分享angularjs动态添加、删除div代码,希望能帮助到大家。 点击 增加可添加一条p 点击删除可删除一条p HTML代码如下:(省略CSS样式代码了大笑)   授权给:     …

    2025年3月8日
    200
  • angularJs实现表格添加删除修改查询功能代码

    本文主要和大家分享angularjs实现表格添加删除修改查询功能代码,希望能帮助到大家。 如下所示: nbsp;html>  Title   var app=angular.module(“mpp”,[]); app.controll…

    编程技术 2025年3月8日
    200
  • angularjs给table增加tr的方法

    本文主要和大家分享angularjs实现table增加tr的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。 需求: 上面是一个table,运用了 登录后复制 循环显示。现在的一个需求是:需要在每行添…

    2025年3月8日
    200
  • angular中json对象push到数组中实例

    本文主要和大家分享angular中json对象push到数组中实例,希望能帮助到大家。 在项目中,api要求的数据格式为 $scope.data = { “name”:”zhangsan”, “Menus”: [{“id”:1},{“id”…

    编程技术 2025年3月8日
    200
  • angularjs数组判断某个元素实例代码

    本文主要和大家分享angularjs数组判断是否含有某个元素的实例,也就是in_array函数,判断数组中是否含有某个元素。 Array.prototype.in_array = function(e) { for(i=0;i<thi…

    编程技术 2025年3月8日
    200
  • vue中引入外部js方法实例

    我们在做vue项目时,经常会需要引入js,常用的有以下几种。本文主要和大家分享vue中引入外部js方法实例,希望能帮助到大家。 第一种 import XX from “路径”Vue.use(XX);这里的js文件要导出用export def…

    编程技术 2025年3月8日
    200
  • Node.js连接MySQL的方法实例

    本文我们主要为大家介绍如何使用 node.js 来连接 mysql,并对数据库进行操作。本教程使用到的 websites 表 sql 文件:websites.sql,希望能帮助到大家。 安装驱动 本教程使用了淘宝定制的 cnpm 命令进行安…

    2025年3月8日
    200
  • js实现关闭网页的代码

    本文主要和大家分享js实现关闭网页的代码,希望能帮助到大家。 关闭 登录后复制登录后复制 很简单的关闭本页面的方法,没有其他额外的提示: window.opener=null; //返回对创建该窗口的 Window 对象的引用。window…

    编程技术 2025年3月8日
    200
  • js正则表达式简介

    本文主要和大家分享js正则表达式简介,希望能帮助到大家。 var reg = /a/mgi; 上面有一个简单的表达式 a代表第一个匹配的字符,i代表不区分大小写,g代表全局匹配(如果不加g 相当于replace找到第一个直接返回)m是多行匹…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论