位置: 编程技术 - 正文

详解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的区别详解

  • 电子缴款凭证和完税证明都可以做原始凭证吗
  • 什么是进口增值业务
  • 办公家具发票要交税吗?
  • 个税身份验证不通过
  • 外购商品增值税
  • 生产车间用电产品有哪些
  • 工业固定资产折旧会计处理
  • 融资担保公司会计建议有哪些要求
  • 专项用途财政资金纳税调整规则
  • 股权转让交的税如何做账
  • 长期借款借方登记归还的本金和利息
  • 补入库存商品的会计分录
  • 给不是本单位的人开证明
  • 企业出口不退税怎么处理
  • 研发费用加计扣除政策指引2.0
  • 买方投资公司
  • 公司仓库调拔结算会计分录.
  • 取得的国债利息收入可以抵扣吗
  • 医疗服务免税发票怎么开
  • 办理房产证时契税完税证明图片怎么弄
  • 没有原始凭证可以审计吗
  • 完成交易预付账怎么做账
  • 半成品加工费计入什么科目
  • 税务自查补税后还有风险吗
  • w10怎么找蓝牙
  • php_fileinfo作用
  • thinkphp 登录功能
  • ICCV, ECCV, CVPR,IEEE的关系
  • 资产负债表根据明细账余额填列的项目
  • 企业盈利结转本年利润分录
  • 固定资产加速一次性扣除
  • 微信小程序实现文件上传
  • ai绘画图片
  • php array合并
  • 限定性和非限定性资产的区别
  • wordpress自动更新
  • 织梦安装步骤
  • access使用查询设计视图计算并显示平均成绩
  • 外企研发中心
  • ibm.data.db2
  • SQL Server UPDATE语句的用法详解
  • 全资子公司注销的账务处理
  • 我们可以收到很多礼物
  • MySQL中使用命令行查看二进制文件
  • 如何编制试算平衡表图示
  • 企业季度预缴所得税怎么算
  • 进口业务关税的计算方法
  • 赠送礼品怎么入账
  • 企业计提什么意思
  • 两家公司的钱混着用怎么做账
  • 建设期收到罚单怎么处罚
  • 知识产权服务费可以计入研发费用吗
  • 福利部门的福利有哪些
  • order by使用
  • sql server常用
  • sql server存储过程教程
  • windows有哪些好用的软件
  • 安装win8.1系统步骤
  • perform.exe是什么进程
  • windows7输入
  • cordova怎么样
  • 微信小程序实现烟花
  • css设置最大高度
  • 各种扩展名的含义
  • Node.js 中exports 和 module.exports 的区别
  • node语句
  • javascript查看数据类型
  • [置顶]马粥街残酷史
  • python怎么爬
  • 税务分局是什么意思
  • 广州税务举报电话
  • 新注册的公司应该做什么
  • 周报要素
  • 手表不贵比较好的品牌
  • 长春税务局待遇如何
  • 北京市朝阳区地图
  • 其他收入工会经费必须申报吗
  • 朝阳区地方税务局电话
  • 12366国税网上申报
  • 云票助手怎么查看开票限额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设