码农眼中的空字符串,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。
本文文字及图片出自 www.jianshu.com
你也许感兴趣的:
- JavaScript 框架选择困难症仍在增加
- 【程序员搞笑图片】盒子里有什么?javascript
- Node.js之父ry“摇人”——要求Oracle放弃JavaScript商标
- JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧!
- 立即让JavaScript获得自由!JS之父等超8000人喊话Oracle:你们也不用,放手吧!
- ECMAScript 2024新特性
- 【外评】JavaScript 变得很好
- 一长串(高级)JavaScript 问题及其解释
- 不存在的浏览器安全漏洞:PDF 中的 JavaScript
- Python 里的所有双下划线(dunder)方法、函数和属性
你对本文的反应是: