我正在学习 JavaScript,我在代码库中发现了一个 if 语句,它的哪一部分是多余的。
if(undefined === value || null === value || !value.toString)
js 中有没有toString
定义的东西(除了undefined
and null
)?
我正在学习 JavaScript,我在代码库中发现了一个 if 语句,它的哪一部分是多余的。
if(undefined === value || null === value || !value.toString)
js 中有没有toString
定义的东西(除了undefined
and null
)?
如果该代码的目标是检查 value 变量是否定义了 toString 方法,那么这很奇怪,因为唯一会评估为 false 的情况是 value 未定义。
我冒昧地为您创建了一个小提琴(http://jsfiddle.net/gnrcc/2/),代码如下:
var obj = new String("Hi, im an object"); // String object
var str = "Hello, im a primitive" // string primitive
var und; // undefined
// will output native method, string and object details
console.log(obj.toString, obj.toString(), obj);
// will output native method, string and string
console.log(str.toString, str.toString(), str);
// will get property undefined error
console.log(und.toString, und.toString(), und);