位置: 编程技术 - 正文

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

  • 纯外贸企业出口到运费可以抵扣吗
  • 报税日期是哪月哪天?
  • 个人所得税计提分录怎么写
  • 自建厂房的进项税额能一次性抵扣吗
  • 基本账户转到一类卡
  • 完税凭证可以补办吗
  • 税控盘必须一直插着吗
  • 通行费电子发票没有通行费字样
  • 暂估资产会计处理
  • 5个点的税率是多少
  • 库存商品损失怎么做账
  • 福利性收入属于什么分配
  • 票据贴现利息怎么开发票
  • 废弃土地的使用年限
  • 4s店买车首付能付一成吗
  • 房地产结转收入是什么意思
  • 企业平时计提的税费分录
  • 企业用银行存款购买原材料
  • 企业怎么进行税务申报
  • 一般纳税人苗木发票可以抵扣吗
  • 进项多销项少
  • 开旅游公司有补贴吗
  • 福利费抵扣了进项税有2年了怎么办
  • 上海地方教育费附加减半征收2018
  • 非同一控制下企业合并的交易费用
  • 专票可以当普票用不抵扣吗
  • 因质量问题扣款协议
  • 无线路由器1200m覆盖范围
  • 增发股票会计科目
  • 设备安装服务几个点
  • Win11截图工具怎么设置快捷键
  • php+ mysql教程
  • php字符串变量
  • PHP:pg_query_params()的用法_PostgreSQL函数
  • antvl7
  • 固定资产后续支出资本化和费用化
  • php中关键字修饰属性是什么
  • 小刺猬 (© lorenzo104/Getty Images)
  • uniapp按钮
  • 数字图像处理总结
  • php实现简单论坛
  • vue遇到的问题和解决方法
  • 账面未分配利润等于净利润?
  • pytest conftest
  • 主营业务收入含义
  • 固定资产以什么资金形态存在
  • 固定资产一次性扣除政策
  • 个体工商户免费开票额度
  • 销货方怎么开红字发票
  • 投资管理公司怎么收费
  • 劳务外包会计分录最新
  • 专利年费可以计入研发费用加计扣除吗
  • 代扣职工个人所得税的账务处理
  • 主营业务成本可以设明细科目吗
  • 子公司向子公司销售存货
  • 财付通入帐中
  • 存货周转率 高
  • win7旗舰版系统还原无法启动
  • 手动去除扁桃体结石教程
  • centos安装类型选择
  • 电脑安装了安卓系统没用
  • win10系统玩游戏卡
  • 如何在windows沙盒中导入文件
  • mac修改java版本
  • win8经典模式
  • 电脑window8系统怎么样
  • win10回收站设置
  • linux ssh默认端口
  • Shell正则表达式获取指定字符串
  • jQuery javascript获得网页的高度与宽度的实现代码
  • jquery弹出窗口的方法
  • jquery.Callbacks的实现详解
  • nodejs 获取命令行参数
  • python,字符串
  • javascript XMLHttpRequest对象全面剖析
  • 税务案件移送案件的法律条款
  • 如何计算白酒的出酒率
  • 减免性质代码怎么填
  • 股权转让税收优惠个人所得税
  • 地税局跟税务局有什么区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设