位置: 编程技术 - 正文

详解JavaScript语法对{}处理的坑爹之处(javascript语言介绍)

编辑:rootadmin

JavaScript的语法有多坑,算是众人皆知了。

先来上张图

代码如下:

这么蛋疼的语法坑估计也只有 JavaScript 这样的奇葩才有。

相信对于绝大部分不研究 JavaScript 编译器的童鞋,根本无法理解。(至少我也是觉得不可思议)

后来专门去度娘了一下,才有点恍然大悟!

下面,我们先看看这个代码:

相信大部分童鞋,第一眼都会认为这是一个 对象直接量 。

那这个代码呢?

浏览器会提示语法错误吗?

显然不会!细想一下,我们就会明白到,这是一个 语句块 。

说到这里,敏锐的你可能已经发现:JavaScript 中以 { 开头,会存在二义性。

那 JavaScript 的编译器是怎么处理这个二义性的?

了解决这个问题,ECMA 的方法十分简单粗暴:在语法解析的时候,如果一个语句以「{」开头,就只把它解释成语句块。

这真心是一个坑爹的处理方式!

那既然都是语句块,那为什么 {a:1} 却没有语法错误?

其实在这里,a 被解析器理解为了 标签。标签 是用来配合 break 和 continue 语句作定向跳转的。

因此,这样的写法就会抛出异常:

因为 function () {} 不是函数声明,也不是函数表达式。

到这里,大家应该对 {} 的奇葩处理有了基本的概念。我们再看回文章开始所提到的几条语句:

第一条,因为 {} 是 语句块,代码可以理解为:

所以返回值是 0 。

第二条,由于 {} 并不在语句的开头,所以是一个正常的 对象直接量,空数组和空对象直接相加,返回 "[object Object]" 。

理解了第一第二条,第三条已经无需解释了。

第四条,因为是 () 开始,第一个 {} 被解析为 对象直接量 ,因而两条公式相等,返回 true。

推荐整理分享详解JavaScript语法对{}处理的坑爹之处(javascript语言介绍),希望有所帮助,仅作参考,欢迎阅读内容。

详解JavaScript语法对{}处理的坑爹之处(javascript语言介绍)

文章相关热门搜索词:javascript语言介绍,javascript详细介绍,javascriptj,javascriptj,javascript详细介绍,javascript语言入门教程,javascript语法,javascript详细介绍,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript中attribute和property的区别详解 DOM元素的attribute和property很容易混?x在一起,分不清楚,两者是不同的东西,但是两者又联系紧密。很多新手朋友,也包括以前的我,经常会搞不清楚。a

javascript中的throttle和debounce浅析 throttle我们这里说的throttle就是函数节流的意思。再说的通俗一点就是函数调用的频度控制器,是连续执行时间间隔控制。主要应用的场景比如:1.鼠标

Javascript中的delete操作符详细介绍 一、变量说到javascript中的delete操作符,还是首先要搞清楚javascript中的变量和属性之间的关系。javascript中,变量和对象属性关系非常微妙,甚至可以很

标签: javascript语言介绍

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

上一篇:浅析JavaScript基本类型与引用类型(javascript基于)

下一篇:javascript中attribute和property的区别详解

  • 印花税缴纳方式一经选择1年之内不得修改
  • 一般纳税人的做账流程
  • 增值税税率
  • 抵进项税分录
  • 国有独资企业是国企吗
  • 摊销无形资产商标权计入什么科目
  • 税法规定的增值税
  • 金蝶软件发票录入什么科目
  • 开具16个点发票情况说明
  • 以前年度损益调整借贷方向
  • 电算化怎么操作
  • 母子公司往来款属于借款吗
  • 认证后的发票可以留抵下月抵扣吗
  • 手写发票税率
  • 个人所得税福利费免税范围
  • 工程备用金金额怎么算
  • 货代免税是否需要每年备案
  • 个税验证不通过怎么办
  • 预提租赁费会计处理
  • 股东增加投资款要交印花税吗
  • 飞机票可以直接去机场买吗
  • 设备维修费增值税
  • 跨年度暂估成本入账冲回如何会计分录
  • 查看电脑系统版本
  • 摊销房租费如何做账
  • linux sl
  • win7命令行模式
  • php 代码
  • 错账是什么
  • 进出口企业税务怎可以查出问题
  • vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序
  • 延期收款利息如何缴税
  • 单位管理费用核算范围包括
  • 施工单位老板
  • wisdm数据集
  • 员工报销的话费要缴纳个税吗?
  • java定时器怎么用
  • discuzq是个做什么
  • 审图费谁出
  • 如何在国家税务局增值税纳税申报
  • 收到银行存款利息计入什么科目
  • 独立核算的分公司责任承担问题
  • 驱动开发做得长久吗
  • phpcms教程
  • mysql用户授权信息保存在哪里
  • 银行年费什么时候取消的
  • 个人独资企业的特点
  • 应付利息什么时候确认收入
  • sql 按,拆分成多条数据
  • 普通发票的后续怎么开
  • 培训公司收取培训费用合法吗
  • 计提工会经费会计凭证怎么做分录
  • 企业哪些进项税抵扣
  • 先开票未发货要确认收入吗
  • 在建工程领用原材料税费怎么处理
  • 挂靠在运输公司的车辆为什么要记入"固定资产"科目?
  • 2021年税控盘收费
  • 会计处理的步骤
  • 工程结算一般由什么等方式
  • 建筑业异地预缴个税税率
  • 次年发放的奖金怎么入账
  • 私人银行卡给公司走账有影响吗
  • 旅游,饮食业会议内容
  • mysql 一键安装
  • 如何查看ubuntu系统的版本
  • Linux系统怎么调整屏幕亮度
  • xp系统没有任何图标
  • win10 rundll
  • 电脑xp系统最大多少g
  • linux定时删除2天前的文件输出日志
  • win8如何更改默认存储位置
  • win7系统安装不了软件怎么办
  • 微软为什么这么贵
  • jQuery Mobile 和 Kendo UI 的比较
  • 判断文件是否存在 java
  • 使用nodejs实现简单的局域网聊天功能
  • android零基础
  • 组织创新包括哪些类型
  • 怎么查询公司法人电话号码
  • 铁路运费发票可以抵扣几个点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设