盘点一下Javascript的那些隐式转换

JavaScript 产生于1992年 设计者 Brendan Eich

如果不是公司的决策,Brendan Eich 称绝不可能把 Java 作为 Javascript 设计的原型。

作为设计者,他一点也不喜欢自己的这个作品:

"与其说我爱 Javascript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物。

十八世纪英国文学家约翰逊博士说得好:'它的优秀之处并非原创,它的原创之处并不优秀。' (the part that is good is not original, and the part that is original is not good.)"

JS 的数据类型: Number Boolean String Undefined Null Symbol(es6新定义的)和 ObjectArray 是特殊的 Object

typeof 返回的7中类型:number boolean string object undefined object function

"一夜情的产物": JS 类型相加会有什么意想不到的事情呢?

你可以尝试在浏览器的 Console 中输入

> (!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]*~+[]]]
< sb

神奇的还在后边:

微信图片_20190313101238.jpg

这些隐式转换, 给开发者多多少少都会带了一些不便.
尽管如此, js 依然非常优秀

我来吐槽

*

*

已有 10 条评论

  1. 妙文屋

    如此好文章一定要留下名啊

  2. 线上抢房

    小白表示看不懂,哈哈哈

  3. 来赞的。

    用下你的主题,你不会介意吧,我的网站还没弄好。

    1. Hoe

      欢迎使用

  4. hqweay

    有次定义的整数变量不知为何在后面就成字符串了...然后骚操作在使用前执行 +0 .....😂

    1. Hoe

      😅 TypeScript 来了, 以后不需要为这些事情苦恼了

  5. shansan

    花里胡哨的,可以炒了😅

  6. YuYe

    这就是头疼的地方🤣

    1. Hoe

      TypeScript应该就不存在这种烦恼了

  7. 丘八

    文章不错,非常喜欢