今天看一个教程,我发现了以下内容:
var q2Var1 = "hi there.",
q2Var2 = String( "another string here." );
q2Var 是“构造函数符号”,而 q2Var 是声明变量的“文字符号”,还是我没有得出正确的结论?
谢谢你。
今天看一个教程,我发现了以下内容:
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"
我以前从未听说过这些名称,但“构造函数表示法”很可能是 q2Var2 名称,因为您将参数传递给 String 的构造函数。不过,如何称呼它们并不重要,不是吗?:P