JavaScript 是个好语言 (滑稽

2017-05-23 13:21:18 +08:00
 qdwang
输入
[false, Boolean(false), [], [[]], "", String(""), 0, Number(0), "0", String("0"), [0]].map(x => null >= x && null <= x && null !== x)

输出
[true, true, true, true, true, true, true, true, true, true, true]

一个会在这么多情况下出现逻辑悖论的语言,是个好语言~

所以再怎么发展 ES6, ES2015, ES2017... 都是徒劳的...

只能希望 wasm 快点推进,革了 JS 的命...

9296 次点击
所在节点    JavaScript
109 条回复
enenaaa
2017-05-24 11:32:37 +08:00
@Halomaple 所以 js 作者就是个奇葩啊。所谓空和未定义,对于使用者是一样的,undefined 只是某种认识上的偏执,只用个 null 都能很好地工作。实际上绝大部分语言也是这样做的。
ahonn
2017-05-24 11:56:23 +08:00
我觉得这东西得客观的看。

因为先入为主的原因,先学了其他编程语言再看 JavaScript 会觉得这些很扯。
但是深入了解完之后,会觉得这种结果也是蛮符合常理的。
这并不能代表 JavaScript 不好,虽然的确有些缺陷,但总体来说还是好的。

至于 null 与 undefined,我觉得是必要的。毕竟 JavaScript 变量声明但不赋值使用的话不会报错。
so898
2017-05-24 12:00:44 +08:00
昨天被 JS 的 Float 给坑了的路过
CupTools
2017-05-24 12:00:55 +08:00
zhuangtongfa
2017-05-24 12:14:15 +08:00
不要先入为主
darklowly
2017-05-24 17:32:07 +08:00
@Jeter 你说的这个话题其实是动态语言和静态语言的差别。

动态语言,无需编译,直接就跑。静态语言,别说 coredump,就算是发现一个小 bug,也要重新编译。其实这还不是最重要的。

重要的是,动态语言灵活,静态语言死板。并且这种灵活不仅仅是语法上那么简单,在设计和实现功能的时候,动态语言解决很多问题,可以很“直接”,“优雅” 的几行代码搞定,而静态语言,往往要绞尽脑汁,才能“简单”, “优雅”,的实现,所以很多静态语言写出来的代码,大多很繁琐(例如 java ),因为大部分程序员写出来以后,就不会再去化繁为简了。要知道,写代码容易,化简难。

另外一点,就是静态语言因为有编译时检测,所以很多小粗心,编译器可以帮你检测出来。而动态语言没有编译时语法检测,很多小粗心,必须依赖单元测试,我不知道现在国内有完善测试的团队有多少,反正我所接触过的大部分团队,单元测试普及率很低。

所以事情分两面看,有的人看到某个东西的优点,用其优点,有的人看到某个东西的缺点,而讨厌他。而我经常在这两种人之间徘徊。

但是我还是讨厌 js,他相比大部分动态语言而言(他们都有动态语言的优点),除了流行度以外,具体到很多细节上,JS 是很糟糕的。
royzxq
2017-05-25 01:21:40 +08:00
@4641585 @hxtheone 等下等下你们搞错了我是友军啊, 我的意思是题主喷题主所写的东西还不如喷一波 float。
hxtheone
2017-05-25 01:54:40 +08:00
@royzxq #107 那我只能手动滑稽了
h1367500190
2017-06-01 11:01:47 +08:00
@ahonn null 已经为该变量分配内存空间,undefined 则相反

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363181

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX