打印javascript字符串对象的属性和方法

时间:2013-04-10 07:36:48

标签: javascript

如何打印javascript String对象的属性和方法。

以下代码段不会打印任何内容。

for (x in String) {
   document.write(x);   
}

4 个答案:

答案 0 :(得分:9)

String的属性都是不可枚举的,这就是你的循环没有显示它们的原因。您可以使用Object.getOwnPropertyNames函数在ES5环境中查看自己的属性:

Object.getOwnPropertyNames(String);
// ["length", "name", "arguments", "caller", "prototype", "fromCharCode"]

您可以使用Object.getOwnPropertyDescriptor函数验证它们是不可枚举的:

Object.getOwnPropertyDescriptor(String, "fromCharCode");
// Object {value: function, writable: true, enumerable: false, configurable: true}

如果您想查看String实例方法,则需要查看String.prototype。请注意,这些属性也是不可枚举的:

Object.getOwnPropertyNames(String.prototype);
// ["length", "constructor", "valueOf", "toString", "charAt"...

答案 1 :(得分:2)

首先它必须声明为Object,(可能使用'new'关键字)

s1 = "2 + 2";               
s2 = new String("2 + 2");   
console.log(eval(s1));      
console.log(eval(s2));      

OR

console.log(eval(s2.valueOf()));

答案 2 :(得分:0)

尝试在Chrome中的开发者工具或Firefox中的Firebug中使用控制台。

并试试这个

    for (x in new String()) {
       console.log(x);   
    }

答案 3 :(得分:0)

这应该做的工作:

 var StringProp=Object.getOwnPropertyNames(String);

 document.write(StringProp); 

 -->>  ["length", "name", "arguments", "caller", "prototype", "fromCharCode"]

但您可能会对此感兴趣:

 var StringProtProp=Object.getOwnPropertyNames(String.prototype);

 document.write(StringProtProp); 

-->> ["length", "constructor", "valueOf", "toString", "charAt", "charCodeAt", "concat", 
"indexOf", "lastIndexOf", "localeCompare", "match", "replace", "search", "slice", "split", 
"substring", "substr", "toLowerCase", "toLocaleLowerCase", "toUpperCase", "toLocaleUpperCase",
 "trim", "trimLeft", "trimRight", "link", "anchor", "fontcolor", "fontsize", "big", "blink", 
"bold", "fixed", "italics", "small", "strike", "sub", "sup"]