没有toString方法
No toString method
我正在学习JavaScript,我在代码库中发现if语句的哪一部分是多余的。
if(undefined === value || null === value || !value.toString)
是否有一些在js没有toString
定义(除了undefined
和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);
- 所有对象都有toString方法(来自对象原型)
- 当一个方法被调用时,所有的原语将被它们相应的对象自动包装,导致与对象相同的行为(编辑:异常显然是未定义的原语)
相关文章:
- toBoolean方法类似于toString
- 将toString方法暴露给nashorn中的js对象
- 为什么控制台没有't使用输入的对象's的`toString`方法
- MongoDB原生:toString和toHexString方法之间有什么区别吗?
- JavaScript:Date 的 toString() 和 toLocaleString() 方法之间的区别
- 方法toString是未定义的JavaScript
- 对象的 toString 方法从哪里获取其值
- Ember数据FixtureAdapter hasmany-无法调用方法'toString'的未定义
- console.log是否调用对象的toString方法
- toString 方法打印数组而不是字符串
- 为什么javascript在toString方法中用0代替数字
- 在字符串上使用toString方法是否有任何使用值
- 将日期对象打印为对象,而不是覆盖的tostring方法
- 无法调用方法'toString'ofundefined|我的代码有问题
- 如何在C#中将浮点数转换为Base36,方法与JavaScript's.toString(36)做到了
- 是什么导致了这个toString方法的不同
- 二叉树的toString方法
- 在javascript中访问方法skillet.toString()
- toString()和valueOf()方法的应用领域
- 未捕获类型错误:不能调用方法'toString'零