位置: 编程技术 - 正文

ECMAScript 5严格模式(Strict Mode)介绍(严格模式的作用)

编辑:rootadmin

推荐整理分享ECMAScript 5严格模式(Strict Mode)介绍(严格模式的作用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js的严格模式有什么用,js的严格模式和非严格模式,严格模式的作用,严格模式的作用,严格模式不能执行哪些命令,严格模式的优点和缺点,严格模式不能执行哪些命令,js的严格模式和非严格模式,内容如对您有帮助,希望把文章链接给更多的朋友!

严格模式(Strict Mode)是ECMAScript 5的新特性,它允许你把整个程序,或者某个函数,放置在“严格”的操作语境中。这种严格的语境会防止某些特定的操作并抛出更多的异常。

虽然ECMAScript 5对ECMAScript 3是向下兼容的,但是在严格模式下,所有在ECMAScript 3中不赞成使用的特性都被禁用(或抛出错误)而不是兼容。

启用严格模式有以下好处:

1.捕获一些编程错误,并抛出异常。2.阻止进行一些相对“不安全”的操作(例如访问全局变量),抛出异常。3.禁用一些让人迷惑的特性。

关于严格模式的大多数信息都可以在《ES5规范》[PDF]的第页找到。

(注意:ECMAScript 5的严格模式跟Firefox的严格模式是不同的)

如何启用严格模式

在程序的开头添加这条语句即可对整段脚本启用严格模式:也可以只在函数的内部启用严格模式,这样不会影响到外部:启用严格模式的语句只是一段普通的字符串“use strict”,没有任何新语法。这意味着不会对就旧式浏览器造成任何负面影响。

ECMAScript 5严格模式(Strict Mode)介绍(严格模式的作用)

在函数内部启用严格模式的一个实际应用是,把整个Javascript类库定义在严格模式的函数内部,这样就可以不影响外部的代码:那么,严格模式下的脚本有什么改变呢?

变量和属性

对未定义变量的赋值将会失败,而不是把这个变量作为全局变量。

写入一个可写特性为false的属性,删除一个可配置特性为false的属性,或者添加一个可扩展特性为false的属性,都会导致错误(这些特性是预先商定好的)。过去,这些操作不会抛出异常,仅仅是静默地失败。

对变量、函数或者函数参数执行delete操作会导致错误。在一个对象容器内部定义相同属性会导致异常的抛出:

eval

任何对“eval”这个名字的使用(主要意图是把eval函数指向一个变量或者是对象的属性)都是禁止的。另外,通过eval声明新变量也会无效:

函数

重写arguments对象会导致错误:同名参数会导致错误:对arguments.caller和arguments.callee的访问会抛出异常。因此,任何需要用到的匿名函数都必须先命名,例如:函数的arguments、caller和callee属性不再存在,定义它们的操作也是禁止的。最后,一个长期存在(且非常讨厌)的BUG已经被解决了:当使用null或者undefined作为Function.prototype.call或Function.prototype.apply方法的第一个参数时,函数内部的this将会指向全局对象。而严格模式将会阻止其执行并抛出异常:with() { }

with() { }语句在严格模式下是完全挂掉了。

JavaScript中property和attribute的区别详细介绍 1.定义Property:属性,所有的HTML元素都由HTMLElement类型表示,HTMLElement类型直接继承自Element并添加了一些属性,添加的这些属性分别对应于每个HTML元素都

浅谈JavaScript数据类型 1.数据类型是什么?我们接触的绝大多数程序语言来说,把数据都进行了分类,包括数字、字符、逻辑真假:int,long,string,boolean....等等;我们都知道

深入理解JavaScript系列():设计模式之享元模式详解 介绍享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。

标签: 严格模式的作用

本文链接地址:https://www.jiuchutong.com/biancheng/382855.html 转载请保留说明!

上一篇:ECMAScript 5中的属性描述符详解(ecmascript新特性)

下一篇:JavaScript中property和attribute的区别详细介绍

  • 外地预缴所得税的会计分录
  • 公司给个人分红会计分录
  • 职业年金单位缴费方式
  • 会计凭证包括哪三种
  • 企业所得税能不能删除重新报
  • 异地项目预缴个人所得税
  • 手工帐怎么登记
  • 银行汇票应计入什么科目
  • 分包管理费取费标准
  • 诉讼财产保全保险费计算
  • 当月预交增值税时所属期选了上期怎么办
  • 法人的往来款可以转为实收资本吗?
  • 生物资产出售的账务处理
  • 期末未缴税额为什么会有数据
  • 劳务费开发票还要代扣代缴吗?
  • 农业企业销售林木是否要交印花税?
  • 外籍人员个人所得税政策
  • 小规模需要公账还是私账
  • 发票显示上传失败
  • 固定资产装修费用计入房产税吗
  • 银行承兑汇票怎么取钱
  • 种植业土地租赁计入哪个科目
  • 上市公司发行债券股价会涨吗
  • 收到其他公司的罚款会计分录
  • 社保缴纳方式怎么填
  • Mac怎么设置默认排序方式
  • 生产成本包括哪些项目
  • 公司注册小规模有什么要求
  • 进程lsass.exe
  • 苹果推送最新系统怎么关
  • loadprofiles什么意思
  • visual studio code 调试php方法(图文详解)
  • 蒂内河畔圣艾蒂安小镇,法国阿尔卑斯省 (© CAVALIER Michel/hemis.fr/Alamy Stock Photo)
  • 认识数据库思维导图
  • 铡刀演示
  • jquery教程chm
  • web实训报告怎么写
  • ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话
  • 财政补助收入分录
  • 公司间代收代付
  • 港口公司属于什么性质的单位
  • 销项税比进项税多怎么办
  • 增值税年末留底
  • 征收率有几种
  • 个人收入如何开出发票
  • mysql锁表机制
  • 增值税申报抵扣联数据没有
  • 应收预收应付预付科目怎么合并
  • 非营利组织接受捐赠收入要交企业所得税吗
  • 如何做应收账款分析
  • 疫情防控期间临时性工作补助申请
  • 哪些固定资产不会随着时间的流逝贬值
  • 选择税的计算方法
  • 城市综合配套
  • 流动资产合计怎么算
  • 商品流通企业的含义与特点
  • Windows server 2003 最后一代cpu
  • Windows10下mysql 5.7.17 安装配置方法图文教程
  • windows故障
  • win8系统如何关闭杀毒系统
  • 用iTunes更新iPhone结果盘容量一直减少
  • .hpp是什么文件
  • diskmakerx制作u盘需要多久
  • win7主要有哪些内容
  • android item属性
  • jquery 定位
  • python最简单
  • javascript高级程序设计最新版
  • jquery中什么方法用于模拟光标悬停事件
  • android studio教程入门
  • unity 人物控制
  • 浅谈 javascript 事件处理
  • JavaScript onkeydown事件入门实例(键盘某个按键被按下)
  • js设置点击效果
  • 怎么去税务局领税盘
  • 税务谈心谈话记录2021
  • 小规模开了红字发票申报表怎么填
  • 驻马店燃气投诉电话号码
  • 山西省地方税务总局官网
  • 为什么专利转让要交税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设