有哪些用例new String("already a string")
?
它的全部意义是什么?
实际用途很少String
创建的对象new String("foo")
。唯一的优点是String
对象比原始字符串值更重要的是,作为一个对象,它可以存储属性:
var str = "foo";
str.prop = "bar";
alert(str.prop); // undefined
var str = new String("foo");
str.prop = "bar";
alert(str.prop); // "bar"
如果您不确定可以将哪些值传递给您的代码,那么我建议您的项目中存在更大的问题。返回字符串的原生 JavaScript 对象、主要库或 DOM 方法都不会返回String
对象而不是字符串值。但是,如果您想绝对确定您有一个字符串值而不是一个String
对象,您可以将其转换如下:
var str = new String("foo");
str = "" + str;
如果您要检查的值可以是任何对象,您的选项如下:
-
不用担心 String 对象,只需使用 typeof。这是我的建议。
typeof str == "string"
.
-
使用instanceof和typeof。这通常有效,但缺点是会为在另一个窗口中创建的 String 对象返回误报。
typeof str == "string" || str instanceof String
-
Use 鸭子打字。检查是否存在一个或多个特定于字符串的方法,例如 substring() 或 toLowerCase()。这显然是不精确的,因为对于恰好具有您正在检查的名称的方法的对象,它会返回误报,但在大多数情况下它已经足够好了。
typeof str == "string" || typeof str.substring == "function"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)