位置: 编程技术 - 正文

JavaScript的strict模式与with关键字介绍

编辑:rootadmin
年月,ECMAScript发布了ECMAScript 5,这距离上一个版本的ECMAScript 3标准发布已经整整十年了,其间JavaScript虽然大行于web编程,ECMAScript 4却最终因为利益相关的各大厂商和组织在此语言的复杂性(即是否增加大量特性以扩展ECMAScript的功能)上的分歧而夭折,使得ECMAScript新标准的制订大大落后于编程的实践。ECMAScript 5在目标上没有那么雄心勃勃,除去新增了对JSON的支持和反射的更全面的控制,一项重要改进就是引入“严格模式”(strict mode)。在此模式下,ECMAScript的语法变得更严格,使得原先许多常见的易致错的代码不再被允许,包括强制变量声明和不允许with语句等。采用这种模式很简单,只要在脚本文件或者函数的首行添加"use strict";这样一行字符串就可以了。 笔者后知,年还曾写了一篇小文讨论with关键字的缺陷,随附如下。 楔子 很久很久以前,神笔马良的家乡为了纪念他要将一条马路以他的名字命名。马良没有推辞,不过提出了四个字的意见。多年以后,一位外地人来到这里,在这条马路上拦住一个当地人问路。 请问这是神马路? 对,这是神马路。 你也不知道吗? 我就是这的人,怎么会不知道。 那这是神马路? 你知道了还问什么。 我就是不知道这是神马路。 那我不是已经告诉你这是神马路了吗? 你能不能再说一遍这是神马路? …… 过后,这个当地人想起当年神笔马良的意见,恍然大悟。马良说的是——勿用简称。 A Question One day Tom said to Wang Er, his Chinese friend,“I have a dream. I want to show myself on CCTV.”The next day Tom broke into a neighbor shop. The police didn't take much time to identify and arrest Tom because he was captured very clearly by the shop's CCTV. The question is when Tom said his dream, he is A) ambitious B) not ambitious C)ambiguous D) unambiguous The right answer is B) and C). 正文 以上两个古今中外的例子说明简写有时会引起歧义。这在Javascript中也存在。有时候要反复引用一个名字很长的变量是很麻烦的,比如: objectWithLongName1.propty1=value1; objectWithLongName1.propty2=value2; objectWithLongName1.propty3=value3; objectWithLongName1.method1(); 但是一个清晰的名字对于程序的可读性又是很重要的。所以Javascript提供了with语句。上面的例子可以改写成: 这样省去不少敲打键盘的功夫,而且程序的结构也变得更加清晰。但是这样的简写引入了歧义,我们如何知道大括号内的名称,哪些是objectWithLongName1的属性和方法,哪些是外部变量和函数。Javascript的解析规则是,先在objectWithLongName1上查找这些名称的属性,如果没有找到,则认为它们是外部变量。用代码说明就是这样: 我们希望的是这四种可能性之一,但是一不小心,程序执行的就会是另外一种可能。而且,这样的写法对于程序的读者来说也非常难解。另一方面,对于Javascript解释器,这种不确定性也影响了语言的性能。 其实只要一个小小的改进,就可以祛除这些缺陷。我们可以在省略了对象的属性前面加上点号,这样就在属性和外部变量之间加上了直观的区分,有不少其他语言就是这样做的。我们最初的例子会变成这样: 在Javascript做这样的改进之前,两害相权取其轻,要尽量避免使用with语句。我们仍然可以采用一些变通的方法。 或者对于这样的情况: objectWithLongName1.propty1= objectWithLongName2.propty1; objectWithLongName1.propty2= objectWithLongName2.propty2; …… objectWithLongName1.propty= objectWithLongName2.propty; 可以写成:

推荐整理分享JavaScript的strict模式与with关键字介绍,希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript的strict模式与with关键字介绍

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript类型转换使用方法 (一)转换为字符串X+''toString()String()函数转换为字符串一般是将函数体输出,不过可以重写其toString方法(二)转换为数字parseInt(),parseFloat()使用Number()

js格式化时间和js格式化时间戳示例 /***时间对象的格式化;*/Date.prototype.format=function(format){/**eg:format="YYYY-MM-ddhh:mm:ss";*/varo={"M+":this.getMonth()+1,//month"d+":this.getDate(),//day"h+":this.getHours(),//hour"m+":t

JavaScript类属性的访问方式详解 JavaScript类属性的访问方式varfish={head:1,tail:1,feature:{speak:false,swim:true}}其一,点操作符:console.log(fish.head);//1console.log(fish.tail);//1console.log(fish.feature);//Object{

标签: JavaScript的strict模式与with关键字介绍

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

上一篇:javascript运行机制之this详细介绍(javascript运行环境有哪些)

下一篇:javascript类型转换使用方法(javascript中的类型转换)

  • 消费税的计税价格是什么
  • 税金及附加属于管理费用吗
  • 税务行政诉讼是由税务机关进行审理并作出裁决
  • 主营业务成本借方表示什么意思
  • 收到公司发来的材料,计入会计分录
  • 小规模纳税人增值税优惠政策2023
  • 个体工商户个税税率表2023年
  • 预售房款预缴增值税
  • 固定资产处置净损益计入什么科目
  • 用于不动产的进项税能抵扣吗
  • 购买虚开增票怎么处理?
  • 发票抵税是指哪些内容
  • 农产品所得税扣除比例
  • 其他账簿印花税减免税优惠政策
  • 税金及附加包括所得税费用吗
  • 公司为什么要成立工会委员会
  • 营改增后税金由哪几项费用组成
  • 税务行政强制行为遵循的原则
  • 软件企业证书应该考什么
  • 建筑服务工程款会计分录
  • 日记账的填制
  • 收到购买商品发票怎么做账
  • 基建项目类型填什么
  • 电脑右下角的弹窗怎么关
  • 出售土地印花税怎么计算
  • 工人的意外险如何赔付
  • 单位价值5000元二手设备怎么算
  • 经济作物国家有什么补助吗
  • 苹果电脑记笔记
  • 劳务报酬必须要和工资申报吗
  • 路由器重启后电视放不出来咋办
  • 摊销租赁费的会计分录
  • php date format
  • 固定资产管理系统多少钱
  • 购买材料支出明细表
  • vue带参数跳转到详情页面
  • 餐饮类的增值税
  • 高速发票看不见金额怎么办
  • 持续集成的步骤
  • smarty模板数学运算示例
  • 基于51单片机的电子秤设计
  • vue2 diff算法
  • 汇算清缴有问题怎么办
  • 生产型企业可以买进就卖出吗
  • 公账转给员工工资情况说明怎么写
  • 进项税额是什么意思
  • 发票与销售小票有什么区别?
  • 暂估入库的账务处理含税吗
  • 配电箱安装步骤及要求
  • 调整以前年度销项税额的分录
  • 商家代金券谁出钱
  • 客户付了订金后能退吗
  • 不动产发票开具规则
  • 未开票收入怎么报税
  • 企业如何建账之类的账目
  • mysql数据库操作题
  • sql server 2000中的安全性包含
  • win8如何调整电脑屏幕亮度
  • 电脑安装win8系统
  • ubuntu server教程
  • ubuntu20.04.1安装
  • centos7installation怎么配
  • win7一键共享软件
  • win8系统怎么安装软件
  • 解决出现的问题下一句,欢迎的语气
  • Metaio SDK 6.0.2自带Example自己实现(三)
  • ExtJS如何设置与获取radio控件的选取状态
  • css隐藏显示元素的方法
  • JavaScript的21条基本知识点
  • android studio警告
  • python中字典的方法有哪些
  • javascript要学到什么程度
  • 编写js代码要注意什么
  • jquery隐藏和显示div
  • 22号天蝎座的运势
  • 被认为是税务风险的原因
  • 四川省国税局
  • 个人所得税子女教育和赡养老人抵扣多少税
  • 土地买卖谈判开场陈述
  • 环保标识码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设