gpt4 book ai didi

javascript - JavaScript 中的 new String ("x") 有什么意义?

转载 作者:IT王子 更新时间:2023-10-29 03:13:20 26 4
gpt4 key购买 nike

执行new String("already a string")有哪些用例?

它的全部意义是什么?

最佳答案

new String("foo") 创建的 String 对象几乎没有实际用途。 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;

如果您要检查的值可以是任何对象,您的选项如下:

  1. 不用担心 String 对象,只需使用 typeof。这是我的建议。

    typeof str == "string"

  2. 使用 instanceof 和 typeof。这通常有效,但缺点是会为在另一个窗口中创建的 String 对象返回误报。

    typeof str == "字符串"|| str instanceof 字符串

  3. 使用 duck typing 。检查是否存在一种或多种特定于字符串的方法,例如 substring() 或 toLowerCase()。这显然是不精确的,因为对于恰好具有您正在检查的名称的方法的对象,它会返回误报,但在大多数情况下它已经足够好了。

    typeof str == "字符串"|| typeof str.substring == "函数"

关于javascript - JavaScript 中的 new String ("x") 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com