今天看了一个教程,我遇到了以下问题:
var q2Var1 = "hi there.",
q2Var2 = String( "another string here." );
q2Var 是用于声明变量的“构造函数符号”而 q2Var 是“文字符号”,还是我没有得出正确的结论?
谢谢。
最佳答案
不,它们都不使用构造函数来创建字符串对象。
第一个只是一个字符串原语,第二个是通过 String
转换函数发送的一个字符串原语,它将只返回未改变的字符串原语。
String
转换函数通常用于将其他东西转换为字符串基元,例如一个数字:
var s = String(42);
要创建 String
对象,您可以使用 new
关键字:
var s = new String("hi there.");
String
对象具有您在字符串上使用的所有方法,例如 length
属性。您也可以在字符串基元上使用它们的原因是,当您对它们使用方法时,它们会自动转换为 String
对象。
所以,这个:
var l = "asdf".length;
实际上与:
var l = new String("asdf").length;
String
转换函数总是返回一个字符串原语,所以如果你有一个 String
对象,该函数会将它转回一个字符串原语:
var s = "asdf"; // typeof s returns "string"
var s = new String(s); // typeof s now returns "object"
s = String(s); // typeof s now returns "string"
关于javascript - 在 Javascript 中声明变量 - 构造函数与文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12628752/