13界D2大会 Sven Sauleau - Understanding the Differences Is Accepting(我猜名字又叫JS冷知识)
有两个相关议题, 一个是 “Understanding the Differences Is Accepting”,主要科普下JS相关的冷知识。 另外一个是“WebAssembly becoming the biggest platform” ,科普下如何使用和上手WebAssembly。
Sven Sauleau是个很帅气的??小哥哥,嗯,听完分享以后,一秒圈粉。PPT还很幽默。
先上我拍的帅照!!!就问你!!帅不帅!!
哦,对了,渣英语翻译请见谅哈【⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄】
分享主题:Understanding the Differences Is Accepting
感觉主要内容是用例子讲的是JS相关的冷知识,讲下相关的定义
JS作用域冷知识![](/assets/blank.gif)
代码如下:(答案选A)
switch (0) {case 0:a();break;case 1:function a() {console.log("foo")}break;
}
原因解析:
1. the switch body creates a new scope 【switch语句创建了新的作用域】
2. cases are not creating a new scope 【case语句不会创建新的作用域】
3. function declarations are hoisted【function函数声明被提升了】
改变成A的效果(增加大括号作用域):
switch (0) {case 0:a();break;case 1:{ //增加大括号作用域function a() {console.log("foo")}break;}
}
转义字符的判断
代码如下:(答案选A)
"\n\t\r\n\t\r" == false
1. \t, \n and \r are expanded to empty string 【 \t 是空格,\n 是换行,\r 是回车,但三个都还是空白字符】
2. empty string is falsy【空值双等号(==)判断 , 空值为false】
改变成B的效果(增加大括号作用域):
//全等操作符比较两个值是否相等,两个被比较的值在比较前都不进行隐式转换
"\n\t\r\n\t\r" === false
拓展阅读参考:MDN - JavaScript 中的相等性判断
NaN的判断
代码如下:(答案 是 false)
NaN == NaN
Unrepresentable/broken value 【无法形容的的变量值,没找到来源,我才是ECMAScript相关文献规范】
6.1.6 The Number Type 【Nmber值类型】
“[...] all NaN values are indistinguishable from each other.” 【每个NaN的值都是难区分的】
7.2.15 Strict Equality Comparison 【严格相等对比】
“2.a If x is NaN, return false or 2.b If y is NaN, return false.”【2.a 和 2.b都是NaN,但是无法判断是否相等】
对于NaN的判断( 使用 isNaN()函数 ):
isNaN("2.a")
拓展阅读参考:isNaN()
数字的正无穷和负无穷判断
代码如下:(答案选A)
Math.pow(2,53) + 1 === Math.pow(2,53)
6.1.6 The Number Type 【Nmber值类型】
1. Number are 64 bits float 【Nmber是64位的浮点数】
2. 11 bits are for the exponent
3. −2 53 to +2 53 【值范围是 -2 53 到 +2 53】
类似的判断还有如下:
-Math.pow(2, 53) - 1 === -Math.pow(2, 53)
拓展阅读参考:MDN Number值的相关阅读
双等号的隐式转换问题
代码如下:(答案选A)
[1, 2] == "1,2"
7.2.14 Abstract Equality Comparison
“9. If Type(x) is Object and Type(y) is either [...], return the result of the comparison ToPrimitive(x) == y.”
and then basically [1, 2].toString(). 【双等号 判断时候 会把数组[1,2] 隐式转化为数字1,2 】
隐式转化问题 - 三等号解决(答案是false)
[1, 2] === "1,2"
拓展阅读参考:MDN - JavaScript 中的相等性判断
HTML注释在JS中的使用
代码如下:(答案选3)
<!-- console.log("foo") -->
Parsing is defined at B.1.3 HTML-like Comments. 【句法分析 定义在 B.1.3 HTML-like 评论里】
Allow browsers that didn’t understand the script tag to degrade gracefully 【方便浏览者不理解script标签的情况下优雅降级】
ex Netscape 1
拓展阅读参考:??小哥哥的github地址,迷妹的我已经follow了
自动添加分号机制
代码如下:(答案选2)
var tt = 0
(1 + 1)
11.9 Automatic Semicolon Insertion 【自动添加分号机制】
No ASI because “[...] the parenthesized expression that begins the second line can be interpreted as an argument list for a function call.” 【括号表达式: 第三行的括号被会打断,因为第二行会被认为一个函数声明】
简单粗暴的解决方式 - 添加分号 (打印出来是2)
var t;;;;t = 0;;
(1 + 1);;
大括号的作用
bitcoin is a label forming a LabeledStatement 【花括号是一个 标签声明】
Following by BlockStatements
aka the blockchain【花括号是块级作用域】
bitcoin这个是双关翻译,意思是比特币~~~
感觉??小哥哥最后又幽默了一把~
好啦~以上就是全部分享啦~
大家猪年快乐呀~
附录:
D2链接:第十三届 D2 前端技术论坛精彩回顾[附PPT]
13界D2大会 Sven Sauleau - Understanding the Differences Is Accepting(我猜名字又叫JS冷知识)相关推荐
- 第13届D2大会 - 参会感受和总结
参与身份:志愿者 今年~ 又一次参与了D2大会~ 又一次当了的志愿者,感觉今年是蹭票的一年 D2头一年采用收费制度,没想到票居然还卖完了~ 今年是在二号厅当微博直播的志愿者,顺便帮嘉宾演讲做倒计时举牌 ...
- Google、Facebook、GitHub、Babel核心成员齐聚,第13届D2前端技术论坛正式启动
由阿里巴巴前端委员会举办的第13届D2前端技术论坛将于2019年1月6日在杭州举办. 本次会议将设置3个分会场,6大主题方向,邀请国内外嘉宾为大家带来精彩的演讲.分享的内容不仅包括未来方向型前沿的内容 ...
- 全球链界科技发展大会_如何成为科技界的团队合作者
全球链界科技发展大会 by Ofer Vugman 由Ofer Vugman 如何成为科技界的团队合作者 (How to be a team player in the tech world) 这些技 ...
- 全球链界科技发展大会_科技界女性占五席
全球链界科技发展大会 有人可能会说:"我们给予的感谢越多,我们得到的感谢就越多 ." 有时候可能感觉不到,但我确实相信感恩会帮助我们保持健康快乐的心态. 而且,我们在技术世界中可以 ...
- D2大会资源分享(解决了GitHub下载限速)
什么是D2 D2 前端技术论坛 (Designer & Developer Frontend Technology Forum, 简称 D2),是由阿里经济体前端委员会主办的面向全球前端领域的 ...
- 第十七届D2大会(II)
一.无极:面向复杂B端项目的低代码平台设计与实践 页面片:自定义的最小低代码开发单元,包括:数据.布局.业务逻辑等 低代码编辑器可配合配置分支管理.DevTool等能力,提供更好的工程体验 二.基于H ...
- 第十六届D2大会(I)
一.ReScript: JavaScript平台上高质量大规模程序构建的秘密武器 设计为js提供服务的脚本语言 数据与函数分离 二.使用跨端方案 Rax 编写鸿蒙应用 多操作系统模式都有自己的一套体系 ...
- 第十七届D2大会(I)
一.Web Compass-端内Web App解决方案揭秘 增强传统web端内方案,提供更好.更收敛的工程体验 二.自渲染跨端框架在字节跳动的实践与展望 基于Flutter Engine的二次开发 三 ...
- 计算机社团活动展望未来,社团展望未来寄语简短,如何写社团未来计划
呵呵,你不会是社团的会长吧,不会写这个的话说不过去了,而且没有你想象的那么复杂,有条理,分类的写下去就可以了,但这里不要太多的口水话! 再者你可以去问一下其他社团的负责人的!:) 随着社团的招新工作落 ...
最新文章
- Javascript 拖拽的一些高级的应用——逐行分析代码,让你轻松了解拖拽的原理...
- 目标检测中的Tricks
- LVS Nginx HAProxy 三种负载均衡优缺点比较
- ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法
- Sprinig Boot + Redis 实现接口幂等性,写得太好了!
- rnn神经网络 层次_精讲深度学习RNN三大核心点,三分钟掌握循环神经网络
- 先序中序数组推后序数组
- js字符串、数组和数字常用方法总结
- @RequestParam 注解原理
- webservice采用ssl/https传输
- Kotlin学习系列(二)
- 读书笔记——思维导图带你看《哲学起步》
- MATLAB自定义函数并绘制
- Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码
- 9008刷机工具_一加6(oneplus6)手机氧OS底包下刷入MIUI12详细刷机教程
- LivePlayer H5播放器、在react中使用
- Calander 类的使用
- 机器学习(周志华)-支持向量机课后习题:
- 等离子体化学反应类型总结
- 根据value值动态的设置checkbox选中状态
热门文章
- 飞机订票系统的模拟(C语言实现)
- 向html中追加内容,将数据内容动态添加到HTML中
- 5G时代的生活,究竟会是怎样?
- 姚班本科生摘最佳学生论文奖,计算机理论顶会STOC2022奖项公布
- 用蒙特卡洛法实现对排队等待问题的计算机模拟
- 单细胞基因可视化之UMAP图修饰
- 基于JAVA早教课程管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
- 中软国际【中软情节-给自己一个爱它的理由】
- java枚举类循环_(转载)java 枚举 循环遍历以及一些简单常见的使用
- 职中计算机网络基础期中考试试卷答案,中职计算机网络基础期中试卷