位置: 编程技术 - 正文

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

  • 认缴制股权转让印花税的计税依据是什么
  • 城镇土地使用税减免税政策
  • 长期股权投资为什么要冲减资本公积
  • 可以现金结算的资产
  • 营业成本包含折旧费吗
  • 企业有利润要交什么税
  • 小规模纳税人的起征点是多少
  • 个人开具发票需要税号吗
  • 金税盘可以用安卓的线吗
  • 其他收益在报表哪个位置
  • 兼职工资直接入公司账户
  • 房地产企业没有退还的履约保证金税务
  • 政府会计制度固定资产折旧哪个月开始计提
  • 打官司败诉承担的费用
  • 受托软件开发不转让著作权的账务处理
  • 生产企业出口退税退的是哪部分的税
  • 个人开具工程款发票
  • 安装工程发票怎么开
  • 外币报表折算差额会计分录
  • 企业所得表怎么填写
  • 如何正确安装和使用电脑
  • 增值税步骤
  • 怎么利用喜欢自己的人
  • 税前净利润等于什么
  • 开出去的普票可以用专票抵扣吗
  • 苹果手机记事本提醒如何设置
  • 交易性金融资产包括哪些项目
  • php测试成功的邮件是什么
  • 网页读出来
  • win10重装系统后黑屏无图像
  • linux安装方式有
  • 股票发行费用怎么处理
  • 财务报表的组成部分
  • 出售固定资产净收益影响营业利润吗
  • vue input value
  • 货物发生非正常损失为什么要做j进项转出
  • 个体户对公账户的钱怎么取出来
  • php获取操作系统
  • .gp4
  • vue遍历数组
  • cat 开源
  • 计算机视觉项目文档
  • 收到银行存款利息计入什么科目
  • 个人所得税申报教程
  • mongodb 教程
  • 用库存现金支付职工医药费用69元,会计人员
  • 无形资产是什么?
  • 产业扶持资金账户是什么
  • 党费返还款怎么做分录
  • 坏账准备具有哪些特征
  • 价税分离购销合同模板
  • 红字发票信息表在哪里查询
  • 应收账款的余额百分比
  • 收到伙食费的会计处理
  • 旅游饮食服务企业的特点包括
  • sql 修改表的字段名称
  • win7电脑频繁自动重启是什么原因造成的
  • 不能在windows7里进行设置的网络位置是
  • win7系统怎么给C盘扩容
  • win7虚拟xp系统怎么安装
  • mac怎么打开访达功能
  • win8.1原版系统安装教程
  • gh-files是什么
  • javascript如何调用
  • 手机背光面板
  • sql怎么设置自增列
  • python中安装模块的命令
  • js怎么操作css
  • Unity3D之Transform参数
  • JavaScript中length属性的使用方法
  • unity已存在
  • js 队列
  • jquery添加属性的方法
  • jquery的插件
  • python设计内容
  • Python实现类似jQuery使用中的链式调用的示例
  • 现在还有地方税务登记证吗
  • 广东etc政策
  • 建筑工程合同首付款
  • 慰问金能直接转账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设