String(x)和''有区别吗?
Is there a difference between String(x) and ''
有区别吗?字符串2会继承不同的对象原型吗?
var s1 = 1234 + '';
var s2 = String(1234);
//s1.someNewFunc(); error?
//s2.someNewFunc();
谢谢
var s1 = 1234 + '';
创建字符串字面值。这是一个javascript语言原语。
var s2 = String(1234);
String()函数也返回一个原始字符串字面值。S2将具有与s1相同的成员,因为它们都是相同的类型。
然而var s3 = new String("1234");
将创建String类型的对象,而不是原始字符串字面值。它确实有不同的成员,并且是object类型。
一样!
var s1 = 1234 + '';
var s2 = String(1234);
typeof s1 //string
typeof s2 //string
两者的行为相同。
同样,这里有一个关于字符串原语和对象的很好的解释:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Stringstring原语和string对象的区别
[…字符串字面值(由双引号或单引号表示)和字符串调用在非构造函数上下文中返回的字符串(即,不使用new关键字)是基本字符串。JavaScript会自动将原语转换为String对象,这样就可以对原语字符串使用String对象方法。[…]
Javascript允许您像对待对象一样对待原始值。它通过动态地将原语强制转换为对象来实现这一点。这就是为什么,即使原语没有属性,像这样的东西也是完全可以的:
"abcde".substr(1,3); //bcd
true.valueOf(); //true
相关文章:
- "#"keyCode=222 vs 51(Chrome与Android版Chrome)-为什么有区别
- smoothstate.js和pjax有区别
- JavaScript中的嵌入循环和嵌套循环之间有区别吗
- jQuery递归函数调用和Javascript之间有区别吗;s setInterval
- 使用构造函数创建对象和返回对象有区别吗
- 预加载图像和缓存图像之间有区别吗
- Web组件与小工具:有区别吗
- 使用依赖注入时,通过引用调用服务或直接调用服务是否有区别
- Google Maps/Google Places:getPlace 和 getDetails 方法之间有区别吗?
- 直接在 HTML 中设置“onclick”与通过 DOM 设置“onclick”之间有区别吗?
- 使用嵌入时,元素和属性指令之间是否有区别
- 我让用户将脚本加载到网页中的方式是否有区别
- 这些JavaScript包含定义是否有区别
- 在JavaScript中测试元素的样式属性和css值之间有区别吗
- 为普通JS和AngularJS应用程序添加RWD有区别吗
- alert() 和 Notification.alert() 在 Xcode 中使用 PhoneGap 之间有区别吗?
- 把javascript放在头上和放在主体上有区别吗
- 有return语句和没有return语句的函数之间有区别吗
- 除了 JavaScript 之外,是否有任何其他语言在大括号开始位置(同一行和下一行)之间有区别
- String(x)和''有区别吗?