码农眼中的空字符串,Javascript 的神学体系
编程语言不约束你,不代表你可以胡来。这个问题主要是片面追求代码的简短,elegant ? 容易导致逻辑混乱。empty string 就是 empty string, 跟 boolean value 没什么关系。不约束码农胡来的语言,在他们心中地位都很高,比如 Python 和 JavaScript。

作者:Yunen



empty string 和 null

None 和 “”
很多人可能看不懂王垠为什么会笑 stackoverflow 的高票答案。
C 中判断 empty string 也可以写成高票的那种写法,而不少程序员都会首选这么写。
C 中没有 boolean value 这种说法,empty string 被认为是 0。
if (! myString) { … }
王垠曾经谈过在 《关于语言的思考》中谈过 false 判断的问题。详细内容请阅读,文章的第一部分,Haskell 给我的启发。
一个没有学过 Haskell 的 Scheme 程序员最容易犯的一个错误就是,把除 #f(Scheme 的逻辑“假”) 以外的任何值都作为 #t(Scheme 的逻辑“真”)。很多人认为这是 Scheme 的一个“特性”,可是殊不知这其实是 Scheme 的极少数缺点之一。如果你了解 Lisp 的历史,就会发现在最早的时候,Lisp 把 nil(空链表)这个值作为“假”来使用,而把 nil 意外的其它值都当成“真”。这带来了逻辑思维的混乱。关于语言的思考
在 《LISP In Small Pieces》第九页,作者也提到这个问题。

LISP In Small Pieces
混淆 boolean value 到极致,应该非 Javascript 莫属。Javascript 中的 0 (false)简直可以复杂如神学。

神学体系
编程语言不约束你,不代表你可以胡来。这个问题主要是片面追求代码的简短,elegant ? 容易导致逻辑混乱。empty string 就是 empty string, 跟 boolean value 没什么关系。不约束码农胡来的语言,在他们心中地位都很高,比如 Python 和 JavaScript。
本文由 TecHug 分享,英文原文及文中图片来自 www.jianshu.com。
你也许感兴趣的:
- 想念 jQuery
- Oracle,是时候解放JavaScript了
- JavaScript中的错误链:借助Error.cause实现更清晰的调试
- 使用 setHTML() 方法消毒HTML
- 可以用 CSS 实现这些,不再需要 JavaScript
- JavaScript 的美好未来不会实现
- Bun Install 比 npm 快 7 倍,Why?
- 魔方交互式动画、可编程JavaScript工具库:Roofpig
- 编程界的丰田卡罗拉
- Google V8:我们如何让 JSON.stringify 的速度提升超过两倍


你对本文的反应是: