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 的命...

9583 次点击
所在节点    JavaScript
109 条回复
oxyFired
2017-05-23 13:25:11 +08:00
sx,你不知道 js 里<=和>=的原理就在这里乱喷
hudotio
2017-05-23 13:26:00 +08:00
固然有槽点,但是 JS 也不是在努力变好么。。。
xilixjd
2017-05-23 13:31:34 +08:00
js 的坏处就在于这些语言的缺陷增加了学习成本
jtsai
2017-05-23 13:31:47 +08:00
我抽过烟、打过架、堕过胎,但我觉得我还是一个好女孩
fds
2017-05-23 13:32:50 +08:00
本来定义就不是有序的呀,谈不上悖论
Presbyter
2017-05-23 13:35:00 +08:00
楼主需要理解一下 Boolean
http://www.w3school.com.cn/js/js_obj_boolean.asp
Mitt
2017-05-23 13:38:48 +08:00
这是每个语言间的定义问题,想知道为什么会发生这种事情就要去看原理了,js 确实有些时候蛋疼,不过我感觉 js 是所有语言中最神奇的
moxhuis
2017-05-23 13:39:30 +08:00
6 年前端 XD
momocraft
2017-05-23 13:42:42 +08:00
一个通用语言中的所有值不太可能构成偏序,拿这个黑有点牵强了。
otakustay
2017-05-23 13:57:47 +08:00
都 2017 年了,你的眼里还是没有类型这个东西,还是拿着完全不同类型的东西去做不应该做的运算
是的 js 有历史包袱所以有一些边界情况下会有问题,但是 2017 年了同学,2017 年的软件工程里你去踩这些边界条件还能说出来当炫耀吗?
Mitt
2017-05-23 14:00:02 +08:00
yoa1q7y
2017-05-23 14:09:17 +08:00
这怎么算作是悖论,你故意这么写,结果都是符合当初的语言设计标准的
其他语言不也一样么
popu111
2017-05-23 14:14:03 +08:00
第一二个是 true ??? excuse me ?
ck65
2017-05-23 14:22:20 +08:00
我学习并用 JS 的种种「不对」拿薪水,你花掉时间研究它又是来做什么呢?
plqws
2017-05-23 14:23:47 +08:00
这么说的话,看来世界上所有脚本语言都没有存在的意义了
buckyRRRR
2017-05-23 14:25:42 +08:00
缺陷被放大也都是被面试题害的,正常工作里这些东西会给你带来麻烦,知道问题规避不可以吗
demo
2017-05-23 14:50:14 +08:00
楼主不知道原因吗?非严格相等比较的时候会进行类型转换,比如:

[false, Boolean(false), [], [[]], "", String(""), 0, Number(0), "0", String("0"), [0]].map(x => Number(x))
// [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Number(null)
// 0

这样 “ null >= x && null <= x ” 就是 “ 0 >= 0 && 0 <= 0 ”,而 null 和 0 是 2 个不同的类型,所有不全等。

楼主可以看看: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness
SakuraKuma
2017-05-23 14:55:45 +08:00
感觉是被面试题气疯了的。(
gongbaodd
2017-05-23 15:00:51 +08:00
泥萌不要这么说 jj,泥萌知道 jj 有多努力么
gouflv
2017-05-23 15:27:34 +08:00
5 年前端 233, 有这时间学什么不好

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

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

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

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

© 2021 V2EX