一般写判断的时候都是
typeof x == "undefined"
但是有个十几年工作经验的老码农用了下面的写法,完全看不懂其中的意义
结果都是一样的,这么写的区别到底在哪里
"undefined"==typeof x
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
百度了一下,其实这个是一个小技巧来的,避免了一些问题
通常,我们会这样写
JavaScript
的if
语句:是人都会出错。有时候我们会不小心把比较操作符(
===
或==
)错写成赋值操作符(=
):有聪明人想了一个办法,把比较操作符的两边调换一下:
由于
'another' = one
是一个非法的赋值表达式,浏览器就会报错,程序功能就会挂掉——我们能够立刻发现问题。以上解释来自 http://myst729.github.io/2015/on-writing-if-statements/
这个貌似是Java带来的习惯,因为 Java 在比较两个对象是否一致的时候,不是用
==
而是用.equals
,以比较字符串为例有没有发现第2句(注释掉那句)的问题?——如果
s
是null
,它会抛NullPointerException
,但是第1句就不会。对于其它可以使用
==
来进行比较的语言来说,常量前置没有多大意义。顺便,有另一种说明,和测试思想有关。就是,把想要的放在前面,参与比较的放在后面,比如一般比较函数都会定义成
equals(exprect, value)
。各种语言都在解决
null
判断的问题,比如C# 6.0
就提供了判空语句,比如等同于
把常量写前面,可以防止万一你把==写成了=
这个有什么特殊的意义么?应该只是个人的习惯吧
个人习惯! 把常量放在前面。