位置: 编程技术 - 正文

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

  • 不通过税金及附加的科目
  • 购房补贴退契税多久到账
  • 新办企业发票核定及申领,选否行吗
  • 收入总额的概念
  • 红字冲销增值税专用发票怎么写
  • 股东多人实收资产怎么办
  • 研发物资
  • 某物业公司组织工人进入下水道
  • 计算并结转本月应交的城建税700元
  • 劳务费个人还需要交税吗
  • 高新企业国家补助收入怎么入账
  • 个人给公司付款怎么做分录
  • 理财认购申购
  • 购进虚假发票进项税转出的会计处理?
  • 金蝶软件怎么批量审核凭证
  • 投资资本回报率多少合适
  • linux zen3
  • 线上网速测试
  • 兼职劳务费税率是多少
  • 增值税进项税抵扣销项税
  • php的正则表达式
  • keyemain.exe是什么进程
  • 企业投资入股要交企业所得税吗
  • 个体工商户减免个人所得税政策
  • 鲜艳的多彩的英文
  • 雷尼尔国家公园攻略
  • laravel sqlserver
  • laravel5.4生成验证码的实例讲解
  • vue清空form数据再重新赋值
  • 解决谷歌浏览器自动添加书签问题
  • 单目测距精度
  • 租赁增值税发票税率
  • 企业员工福利包括哪些内容
  • 100%控股权什么意思
  • 银行代发工资流程
  • db2pd 命令
  • 普通发票的税费计入应交税费吗
  • 固定资产处置的账务处理 终于搞明白了!
  • 土地增值税预缴计算方法70号公告
  • 支付政协扶贫款怎么做账
  • 航天金穗服务费可以抵扣吗
  • 律师费能计入办公费吗合法吗
  • 购买原材料时发生的不可抵扣的增值税额
  • 教育费返还款计入收入吗
  • 金融工具减值准则
  • 暂估材料发票长期不到
  • 赔偿给别人的钱还能要回来吗
  • 小规模纳税人可以抵税吗
  • 红十字会是事业编还是行政编
  • 如何查看网络连接密码
  • win8无线网受限
  • xp系统蓝屏解决
  • cpu numa
  • ubuntu无线网卡驱动离线安装
  • w10升级失败怎么办
  • linux下4种kill某个用户所有进程的方法
  • 盗版xp黑屏的解决办法
  • win8远程桌面连接设置
  • win7系统笔记本无线网络找不到
  • win10预览版21h2
  • ,linux
  • node.js cookie-parser之parser.js
  • shell脚本-lt
  • Cocos2dx 3.0 lambda表达式的使用
  • 不需要背景
  • android性能指标
  • python数据验证
  • java复选按钮
  • mac如何配置pycharm
  • javascript中的类型转换
  • JS Timing
  • Android-Universal-Image-Loader 图片异步加载类库的使用
  • 票据代码和票据号码是什么意思
  • 工会经费网上怎么申报
  • 预缴纳税申报个税怎么算
  • 陕西电子税务局官网
  • 北京税务网上营业厅官网
  • 江苏省常熟市归哪管
  • 定期定额个体工商户需要做账吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设