摘要:也可以只在函数中打开严格模式严格模式下没有全局变量严格模式下会报错,非严格模式下正常删除变量有三种声明的情形声明的全局变量声明的局部变量中声明的全局变量第一种和第二种情况是无法用删掉的。
所谓严格模式其实就是一个不会赋值给任何变量的字符串 “use strict”
如果在全局作用域下 给出这个提示,那整个脚本将采用严格模式。也可以只在函数中打开严格模式
a="test"
严格模式下会报错,非严格模式下正常
2.删除变量var 有三种声明的情形
var 声明的全局变量
var 声明的局部变量
eval()中声明的全局变量
第一种和第二种情况是无法用 delete删掉的。
首先第一种情况声明的全局对象虽然是windows的属性,但这个属性的configurable=false 因此是无法删除的
第二种情况 局部变量更不行了,连依附的对象是谁都不知道,怎么删除
第三种情况eval()稍后会说到。
回归正题。也就是说非严格模式下,可以删除变量,但是会失败返回false.
严格模式下删除变量会报错。
在下列情况下操作对象会报错
为只读属性赋值会报错
对不可配置的属性使用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属性,就会报错。
一会回来补充点别的
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/92897.html
摘要:是什么这个单词是一个代词,所以应该是指代某些东西搞清楚的关键之处,就是要搞清楚指代了什么那么到底指代了什么呢就像你平时指着一个苹果说指着一个香蕉说同样,也会因为情况的不同而不同在中按照常规理解,的值是什么取决于函数如何被调用然而,的值是什么 1. this是什么 this这个单词是一个代词,所以this应该是 指代某些东西搞清楚this的关键之处,就是要搞清楚this指代了什么 那么t...
摘要:严格模式和非严格模式有什么区别严格模式对正常的语义做了一些更改。其次,严格模式修复了一些导致引擎难以执行优化的缺陷有时候,相同的代码,严格模式可以比非严格模式下运行得更快。 严格模式和非严格模式有什么区别: 严格模式对正常的 JavaScript语义做了一些更改。首先,严格模式通过抛出错误来消除了一些原有静默错误。其次,严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷...
摘要:声明了一个函数,并且将它作为一个构造函数调用构造函数调用构造函数调用是函数的构造函数调用。构造函数中的在构造函数调用中指向新创建的对象构造函数调用的上下文是新创建的对象。来看看下面示例中的上下文正在进行构造函数调用,其中上下文是。 为了保证的可读性,本文采用意译而非直译。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 1. this 的奥秘 很多时候, JS 中...
摘要:它的代码草稿纸简直是浏览器里的调试神器,不仅简单直观,而且也具备了一般的编辑器功能,无奈用习惯了的,我用得较少但感觉作为开发者工具绝对业界良心。 一般平时的少量测试代码, 我习惯直接在Chrome的DEV中调试, 一般的调试都没有问题, 但难免一些小概率事件, 比如调试严格模式下的代码(关于严格模式,mark在这里?严格模式), 这时候如果直接在console里输入use strict...
阅读 1482·2023-04-25 15:40
阅读 2833·2021-08-11 11:15
阅读 2272·2019-08-26 13:48
阅读 2843·2019-08-26 12:18
阅读 2447·2019-08-23 18:23
阅读 2904·2019-08-23 17:01
阅读 2977·2019-08-23 16:29
阅读 1100·2019-08-23 15:15