我认为字符串具有属性,例如match
。为什么console.dir('')
声称''
没有属性(至少在谷歌浏览器中)?
答案 0 :(得分:6)
这是因为''
是一个字符串文字,而不是String
“类”的实例。由于在match
上声明String.prototype
等属性,因此在使用字符串文字时不会看到它们。如果您使用new
运算符,您将看到预期的结果:
var s = new String("hello");
console.dir(s);
以下是Chrome开发人员工具的屏幕截图(请注意需要扩展prototype
,因为您期望看到的方法是在原型上声明的,而不是String
对象本身:< / p>
答案 1 :(得分:2)
可能出于同样的原因,即console.dir(true)和console.dir(1234)说一旦你调低旋钮指向数据。如果它是一个Object,代码可能只遍历属性。为什么旋转调节旋钮仍然存在尚不清楚。
答案 2 :(得分:0)
在JavaScript中,全局String对象具有在该语言中预定义的方法。实际的字符串文字继承了全局String对象的方法,但除了“length”之外没有其他属性。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String