V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
qdwang
V2EX  ›  JavaScript

JavaScript 是个好语言 (滑稽

  •  
  •   qdwang · 2017-05-23 13:21:18 +08:00 · 9494 次点击
    这是一个创建于 2728 天前的主题,其中的信息可能已经有所发展或是发生改变。
    输入
    [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 的命...

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

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

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

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

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

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

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

    但是我还是讨厌 js,他相比大部分动态语言而言(他们都有动态语言的优点),除了流行度以外,具体到很多细节上,JS 是很糟糕的。
    royzxq
        107
    royzxq  
       2017-05-25 01:21:40 +08:00
    @4641585 @hxtheone 等下等下你们搞错了我是友军啊, 我的意思是题主喷题主所写的东西还不如喷一波 float。
    hxtheone
        108
    hxtheone  
       2017-05-25 01:54:40 +08:00
    @royzxq #107 那我只能手动滑稽了
    h1367500190
        109
    h1367500190  
       2017-06-01 11:01:47 +08:00
    @ahonn null 已经为该变量分配内存空间,undefined 则相反
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 09:41 · PVG 17:41 · LAX 01:41 · JFK 04:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.