时间:2021-05-26
严格模式的优缺点
优点:
缺点
严格模式与非严格模式的区别
1.禁用with语法,使用将报错
因为解析with语法时作用域的情况会非常复杂,严重影响代码的解析与运行速度
function usualMode() { with({a: 1}) { console.log(a) }}usalMode() // 正常输出 1function strictMode() { 'use strict' with({a: 1}) { console.log(a) }}strictMode() // 将报错2.禁止删除变量与函数
3.属性描述符(propertyDescriptor)相关
能改变属性描述符的方法有Object.defineProperty、Object.defineProperties、Reflect.defineProperty、Reflect.defineProperties、Object.freeze、Object.seal;获取一个属性描述符可以用Object.getOwnPropertyDescriptor、Object.getOwnPropertyDecriptors,ES6中还有Reflect.getOwnPropertyDescriptor、Reflect.getOwnPropertyDescriptors
3.1删除configurable = false的属性会报错
3.2给writable = false的属性赋值会报错
4.给不允许扩展的object增加属性会报错
能将object设置为不可扩展的方法有Object.freeze、Object.seal、Object.preventExtensions;ES6还有Reflect.freeze、Reflect.seal、Reflect.preventExtensions;判断一个object是否允许扩展可以用Object.isExtensible;ES6还有Reflect.isExtensible
5.给未申明的变量赋值会报错
6.定义object时属性重名会报错
7.形参重复时会报错
8.eval相关
8.1eval有独立作用域
8.2eval不能作为变量名或函数名,类似关键字
9.arguments相关
9.1arguments是形参的副本(类似浅拷贝)
9.2arguments不能作为变量名或函数名,类似关键字
10.禁用caller与callee
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
严格模式:由ECMA-262规范定义的JavaScript标准,对javascrip的限制更强。(非严格的模式,被称为“马虎模式/稀松模式/懒散模式”。)一、严
一、概述除了正常运行模式,ECMAscript5添加了第二种运行模式:“严格模式”(strictmode)。顾名思义,这种模式使得Javascript在更严格的
一、什么是严格模式我们平时写的JavaScript代码一般都运行在正常模式中的,除了正常运行模式,ECMAscript5添加了第二种运行模式:”严格模式”(st
javascript严格模式第一次接触let关键字,有一个要非常非常要注意的概念就是”javascript严格模式”,比如下述的代码运行就会报错:lethell
首页,我们要理解严格模式的概念,严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,病增强安全性。可以对部分函数进行执行严格模式,如:f