位置: 编程技术 - 正文

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

  • 企业如何做增量
  • 民办学校房屋要求
  • 文化建设税怎么填
  • 一般纳税人能否享受残保金优惠
  • 开发票高校是企业还是非企业单位
  • 一般企业和小企业会计准则的区别
  • 餐饮通用机打发票可以报销吗
  • 企业所得税纳税调整明细表
  • 企业所得税汇算清缴时间
  • 子公司注销应收母公司往来款
  • 转业士官自谋职业
  • 关联交易所得税规定
  • 电梯提供安装的增值税税率最新的
  • 享受所得税减免优惠的生产性外商投资企业包括
  • 持有至到期投资改名为
  • 伙食支出设立的明细
  • 开票信息没有电话号码可以吗
  • 业务招待费怎么调整应纳税所得额
  • 法人变更了还用变更发票领用本吗
  • 优化技巧
  • 银行手续费回单可以作为报销
  • 软件企业超税负率怎么算
  • 购买设备对方垫付运费会计分录
  • 出口货物免征增值税的有哪些
  • 事业单位是否需要章程
  • 年底有留抵税额需要结转吗
  • 营业外收入怎么开票能开吗
  • win10系统如何禁用驱动强制签名
  • 为什么win+d
  • 抖音自动抢福袋挂机软件哪个好
  • win10新装系统我的电脑在哪
  • 交易性金融资产的入账价值
  • 废品损失科目的期末余额在借方表示什么?
  • 损益类账户怎么做会计分录
  • acc字幕文件怎么转换srt字幕
  • 实现扩展功能的快捷键
  • htmlcss导航栏网页
  • mysql识别中文
  • apr命令怎么用
  • 弥补以前年度亏损报表怎么填
  • 未达起征点销售额是含税还是不含税
  • uni-simple-router 跳转无效
  • 财务费用手续费在借方还是贷方
  • 电子承兑到期清算方式是线上还是线下
  • 印花税的申报表怎么打印
  • mysql 中文排序是什么规则
  • 应交税金应交增值税年底转平吗
  • 计提坏账准备的方法
  • 劳务公司成本核算方法一般选择哪个
  • 注册资本及构成
  • 收到支持学校工作的短信怎么回复
  • 返还垫付征地款
  • 5000以下的固定资产一次性计入费用
  • 企业建账选择什么会计准则
  • 关闭terminal monitor
  • mysql数据库巡检脚本
  • win101909激活
  • window如何恢复系统
  • windows2003怎么样
  • 复制文件文件名过长怎么复制
  • 电脑c盘里windows
  • win7系统如何安装蓝牙驱动
  • centos7.6和7.7
  • Linux服务器架设指南百度网盘
  • win7怎么打开windows media player
  • 朝鲜引擎
  • uibutton设置圆角
  • 杨辉三角的代码
  • lru缓存机制是什么
  • 深入理解中国式现代化
  • javascript sort方法排序
  • 浅谈编码,解码的意义
  • 手滑式手机是什么意思
  • python字符串连接join
  • 亦庄地税局税务局营业大厅
  • 一般纳税人按季申报的行业
  • 珠海自助征信查询机
  • 政府采购合同模板
  • 2023年新乡契税补贴政策
  • 税控系统减免税报表里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设