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

9502 次点击
所在节点    JavaScript
109 条回复
enenaaa
2017-05-23 17:33:09 +08:00
谁来告诉我, 为啥有 undefined 还要 null, 有了 null 还要 undefined。
iugo
2017-05-23 17:42:01 +08:00
说的别的:

我记得之前看 "漫画家" 的文章说 WebAssembly 是为了解决性能问题, 不是为了革 JS 的命.
qdwang
2017-05-23 17:56:41 +08:00
@iugo

当 WebAssembly 可以解决所有问题的时候,JS 就会变成浏览器二等公民了,慢慢就可以把它淘汰了。
iugo
2017-05-23 17:59:19 +08:00
@qdwang 这目标挺远的, 至少比 web components 远.
qdwang
2017-05-23 18:00:14 +08:00
@tyfulcrum 我就是那这里面的来举例子的
qdwang
2017-05-23 18:02:02 +08:00
@iugo 目标虽远,但是终有达到的一天。
qdwang
2017-05-23 18:04:06 +08:00
@Artists 当然不是,自然语言那么多歧义,是非常不好的编程语言。好的编程语言最起码需要有 well defined type system
chairuosen
2017-05-23 18:05:27 +08:00
@enenaaa null 是有语意的空,undefined 是没语意的
sirm2z
2017-05-23 18:08:02 +08:00
我觉得淘汰不可能,浏览器是个特殊的环境,它需要保持向前兼容,不可能有技术革新,就瘫痪掉一批网站。

用户才是王道,浏览器有这么多,只要不是同时全部抛弃了旧的网站,这门语言就有生存的必要
qdwang
2017-05-23 18:09:49 +08:00
@sirm2z 淘汰的意思是,开发使用新的语言和开发环境,不是说不兼容老的代码
windfarer
2017-05-23 18:10:03 +08:00
sirm2z
2017-05-23 18:24:27 +08:00
@qdwang #50 其实根据现在开发人员的技术水平,我觉的重新整出一套新的语言,并且优于 js 是很容易的

但是比较一下推广成本,开发人员的接受率,大厂的使用率,这样看来基本上是一个出力不讨好的事情

只能说淘汰 js 很难,它的势头很猛,这是不能否认的,亲爹干爹也多,大家都乐于去在它基础上完善(填坑)

我想是有一定道理的,浏览器( js 的运行环境)毕竟有多家,他们本身就在博弈

我觉得要他们再兼容新的语言的运行环境,不是易事
Clarencep
2017-05-23 18:37:56 +08:00
所以说坐等 webassembly 普及,然后各种语言都可以编译成 webassembly 跑在浏览器里面。。。
qdwang
2017-05-23 18:45:07 +08:00
@sirm2z

我觉得不需要造一个新的语言,基于现有高质量的好的语言编译到 wasm 就可以了。
推广肯定是该这些社区自行推广的,成本不高。

淘汰 js,要从下一代程序员开始。就像现在入门的人,可以直接用 typescript 一样。再下一代的前端程序员,可以直接用其他更好的语言来开发网页程序。
qdwang
2017-05-23 18:45:33 +08:00
@Clarencep 没错~
lxy
2017-05-23 18:59:14 +08:00
弱类型以及隐式转换,js 里很多这种反直觉的东西。
很多人眼里,可解释 == 可接受,类似于 It's not a bug, it's a feature 的说法。
问题的关键是用户是否需要这种 “ feature ”?
buseni
2017-05-23 19:13:35 +08:00
JS 真是第一大语言
sirm2z
2017-05-23 19:29:06 +08:00
@qdwang 我查了下,目前只有一种方式能调用 wasm 里提供的接口,就是用 javascript !

所以我觉得 WebAssembly 更适合用于写模块,承接各种复杂的计算

如图像处理、3D 运算、语音识别、视音频编码解码这种工作,主体程序还是要用 javascript 来写的
fzhw88
2017-05-23 19:32:45 +08:00
这些都是语言的规范里面明确写着的,强制类型转化的规则……你那每一项转成数字都是 0,这有什么好喷的,每种语言都会有它自己的规范。
fzhw88
2017-05-23 19:34:15 +08:00
[[0]],还是 0

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

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

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

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

© 2021 V2EX