有两个相关议题, 一个是 “Understanding the Differences Is Accepting”,主要科普下JS相关的冷知识。 另外一个是“WebAssembly becoming the biggest platform” ,科普下如何使用和上手WebAssembly。

Sven Sauleau是个很帅气的??小哥哥,嗯,听完分享以后,一秒圈粉。PPT还很幽默。

先上我拍的帅照!!!就问你!!帅不帅!!

哦,对了,渣英语翻译请见谅哈【⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄】

分享主题:Understanding the Differences Is Accepting

感觉主要内容是用例子讲的是JS相关的冷知识,讲下相关的定义

JS作用域冷知识

代码如下:(答案选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冷知识)相关推荐

  1. 第13届D2大会 - 参会感受和总结

    参与身份:志愿者 今年~ 又一次参与了D2大会~ 又一次当了的志愿者,感觉今年是蹭票的一年 D2头一年采用收费制度,没想到票居然还卖完了~ 今年是在二号厅当微博直播的志愿者,顺便帮嘉宾演讲做倒计时举牌 ...

  2. Google、Facebook、GitHub、Babel核心成员齐聚,第13届D2前端技术论坛正式启动

    由阿里巴巴前端委员会举办的第13届D2前端技术论坛将于2019年1月6日在杭州举办. 本次会议将设置3个分会场,6大主题方向,邀请国内外嘉宾为大家带来精彩的演讲.分享的内容不仅包括未来方向型前沿的内容 ...

  3. 全球链界科技发展大会_如何成为科技界的团队合作者

    全球链界科技发展大会 by Ofer Vugman 由Ofer Vugman 如何成为科技界的团队合作者 (How to be a team player in the tech world) 这些技 ...

  4. 全球链界科技发展大会_科技界女性占五席

    全球链界科技发展大会 有人可能会说:"我们给予的感谢越多,我们得到的感谢就越多 ." 有时候可能感觉不到,但我确实相信感恩会帮助我们保持健康快乐的心态. 而且,我们在技术世界中可以 ...

  5. D2大会资源分享(解决了GitHub下载限速)

    什么是D2 D2 前端技术论坛 (Designer & Developer Frontend Technology Forum, 简称 D2),是由阿里经济体前端委员会主办的面向全球前端领域的 ...

  6. 第十七届D2大会(II)

    一.无极:面向复杂B端项目的低代码平台设计与实践 页面片:自定义的最小低代码开发单元,包括:数据.布局.业务逻辑等 低代码编辑器可配合配置分支管理.DevTool等能力,提供更好的工程体验 二.基于H ...

  7. 第十六届D2大会(I)

    一.ReScript: JavaScript平台上高质量大规模程序构建的秘密武器 设计为js提供服务的脚本语言 数据与函数分离 二.使用跨端方案 Rax 编写鸿蒙应用 多操作系统模式都有自己的一套体系 ...

  8. 第十七届D2大会(I)

    一.Web Compass-端内Web App解决方案揭秘 增强传统web端内方案,提供更好.更收敛的工程体验 二.自渲染跨端框架在字节跳动的实践与展望 基于Flutter Engine的二次开发 三 ...

  9. 计算机社团活动展望未来,社团展望未来寄语简短,如何写社团未来计划

    呵呵,你不会是社团的会长吧,不会写这个的话说不过去了,而且没有你想象的那么复杂,有条理,分类的写下去就可以了,但这里不要太多的口水话! 再者你可以去问一下其他社团的负责人的!:) 随着社团的招新工作落 ...

最新文章

  1. Javascript 拖拽的一些高级的应用——逐行分析代码,让你轻松了解拖拽的原理...
  2. 目标检测中的Tricks
  3. LVS Nginx HAProxy 三种负载均衡优缺点比较
  4. ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法
  5. Sprinig Boot + Redis 实现接口幂等性,写得太好了!
  6. rnn神经网络 层次_精讲深度学习RNN三大核心点,三分钟掌握循环神经网络
  7. 先序中序数组推后序数组
  8. js字符串、数组和数字常用方法总结
  9. @RequestParam 注解原理
  10. webservice采用ssl/https传输
  11. Kotlin学习系列(二)
  12. 读书笔记——思维导图带你看《哲学起步》
  13. MATLAB自定义函数并绘制
  14. Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码
  15. 9008刷机工具_一加6(oneplus6)手机氧OS底包下刷入MIUI12详细刷机教程
  16. LivePlayer H5播放器、在react中使用
  17. Calander 类的使用
  18. 机器学习(周志华)-支持向量机课后习题:
  19. 等离子体化学反应类型总结
  20. 根据value值动态的设置checkbox选中状态

热门文章

  1. 飞机订票系统的模拟(C语言实现)
  2. 向html中追加内容,将数据内容动态添加到HTML中
  3. 5G时代的生活,究竟会是怎样?
  4. 姚班本科生摘最佳学生论文奖,计算机理论顶会STOC2022奖项公布
  5. 用蒙特卡洛法实现对排队等待问题的计算机模拟
  6. 单细胞基因可视化之UMAP图修饰
  7. 基于JAVA早教课程管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
  8. 中软国际【中软情节-给自己一个爱它的理由】
  9. java枚举类循环_(转载)java 枚举 循环遍历以及一些简单常见的使用
  10. 职中计算机网络基础期中考试试卷答案,中职计算机网络基础期中试卷