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

9288 次点击
所在节点    JavaScript
109 条回复
kimown
2017-05-23 19:37:13 +08:00
这东西没用的,如果项目里面有人写这样的代码,肯定拉他过去批一顿,写代码是要抱有一种用最简单,别人一看就懂的思路去写,写复杂的代码太简单了,但是要写出别人一看就懂的代码,那就是改改改,重构重构再重构
Jeter
2017-05-23 19:45:02 +08:00
@qdwang 君不见 jvm 语言何其多,Java 语法有多啰嗦,然后 Java 已死???
visonme
2017-05-23 19:49:59 +08:00
如果觉得 js 不好可以选择 ts,作为 MS 深度用户,我也是很提倡永 TS 的,但是我大多数的工作还是用 js ( nodejs )完成了。

对 WebAssembly 接触不深,不敢说太多,但在有限的接触中,我对 WebAssembly 的理解是,强壮 JS 而不是为了革 js 的命,不知道楼主是否认同我这个观点?

所以说让 wasm 革命 js 是不是有点太直觉化了。
maomaomao001
2017-05-23 20:09:35 +08:00
能不能找一个,实际使用过程中的,不如别的语言的点来黑,你这样黑点都找不到乱黑,你觉得合适吗????
Jeter
2017-05-23 20:11:52 +08:00
@yoa1q7y 没错,楼主应该去学学 C/C++(都是强类型语言),然后玩一玩这两门语言的类型提升或者截断转换,指针间的互相转换,直到它的 C/C++代码 core dump 到楼主吹胡子瞪眼睛之后才会想起 js 有多友好。。。
blahgeek
2017-05-23 20:50:45 +08:00
[0, 1, -2, -1].sort()
svenFeng
2017-05-23 21:36:39 +08:00
@Jeter 你看看 JavaScript 是什么时候诞生的,C 又是什么年代诞生的,再去看看 BS 为什么需要 C++要兼容 c 的那些东西,以及为什么有时候这些底层的东西为什么会这样,你这样举例完全就是扯淡,还有强弱类型这个概念有点乱,从类型系统的角度来说,C/C++不是强类型应该比较合适
guokeke
2017-05-23 22:41:31 +08:00
某天,v2 上又出现了 ‘ WebAssembly 是个好...云云’
4641585
2017-05-23 22:49:16 +08:00
@royzxq 我很好奇看到浮点数为什么会意识不到精度问题?大学不止一门课讲过吧,计算机入门读物里也都有吧。
darklowly
2017-05-23 23:01:51 +08:00
@qdwang 在这前端火热的年代,我一直以为就我一个人讨厌 js..


@Jeter 乱说。C,C++类型问题,可以在半小时内记住,并且很少犯错,其实规律很简单。JS 这 SB 随时要提防着,一不小心,就要上天。还有什么指针问题,野指针,内存泄漏,coredump 等,是语言层级不一样,这个不能拿来类比。人家 C,C++可以直接操作内存地址,甚至,如果内存地址是 io 地址,可以直接操作硬件,70 年代的产物,对于老手来说只能看成是汇编的语法糖,外加语法检测而已。


@svenFeng 算上语法检测,不乱搞的情况下,基本上算是静态语言。JS 不乱搞,都害怕出错,写一行代码,要检查 3 遍。
hxtheone
2017-05-23 23:20:44 +08:00
@royzxq #29 浮点数精度问题, 这也能喷?
chunqiuyiyu
2017-05-23 23:51:40 +08:00
我越来越喜欢 JavaScript 了,尤其是现在的 ES6 语法,写起来太爽了
Jeter
2017-05-23 23:58:03 +08:00
@darklowly 好吧,我没说明白,我是想说,C/C++在使用时总是会碰到隐式转换的问题,而且因为它直接操作内存,很多问题 core dump 解决后还需要重新编译构建,对于前端这种需要快速开发的场景很不友好。。而楼主他试图通过“ well defined type system ”的语言编译成 wasm,去避免他帖子里提到的 JS 语言设计问题(然而这些值转换都已经成为标准了),而 C/C++只是我举的一个 [不适合前端] 这个开发场景的例子,来反驳楼主的上述观点。。。确实,JS 的值转换相对很多语言相当 SB (但是已经写入标准了),所以,如果没有能力去改变 JS 这种窘状的话,就去把标准看清楚再来讨论。。。
WENLIANG29
2017-05-24 06:00:07 +08:00
老铁,发这种引战帖没什么意思。JS 固然有很多历史上语言设计的弊端,它也有它的优势,况且语言设计也在慢慢变好。PHP 不也总有人骂么,PHP7 和 PHP-JIT 带来的提升也很大。你总揪着历史缺点不放没意思,而且还是这种老掉牙的喷法。有空不如多写几行代码 -。- (建议你去看一下 Mozilla 核心工程师 Lin Clark 的这篇文章再来说什么 WASM 淘汰 JS 的事 https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/) DOM、BOM、Accessibility 等等都是问题。
Ahri
2017-05-24 07:38:45 +08:00
Java 程序员都是好程序员(滑稽
qdwang
2017-05-24 07:44:59 +08:00
@sirm2z 嗯 目前是这样 以后怎么样说不准呀
Cbdy
2017-05-24 08:32:34 +08:00
@Jeter c/c++这两个都是弱类型语言。。。
sagaxu
2017-05-24 08:53:25 +08:00
语法丑陋没关系,反正不写原生 js,我都是用其它语言写了编译成 js 用
enenaaa
2017-05-24 09:16:29 +08:00
@chairuosen 空不就是未定义么。java 也有 null, 其他语言还有 nil, None, nullptr,叫啥都行。 但谁特么搞两个,神经病啊。
chenyu0532
2017-05-24 09:16:56 +08:00
笑看楼主被喷、、

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

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

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

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

© 2021 V2EX