我在javascript中的字符串文字和字符串对象类型之间大混淆。
这里是代码
var a = new String( "aaaa" );
var b='adddd';
console.log(a) //String('aaaa')
console.log(b) //adddd
console.log(typeof a) //ojbect
console.log(typeof b) //string
console.log(Object.prototype.toString.call( a )) //[object String]
console.log(Object.prototype.toString.call( b )) //[object String]
两个字符串的 typeof 不同,但是当由 toString()生成时,它返回相同的内容。为什么以及如何????
答案 0 :(得分:2)
为什么以及如何????
Object.prototype.toString
将this
值转换为对象值:
- 如果
this
值为undefined
,请返回" [对象未定义]" 。- 如果
this
值为null
,请返回" [对象为空]" 。- 让
O
成为!ToObject(this value)
。- ...
醇>
https://www.ecma-international.org/ecma-262/8.0/index.html#sec-object.prototype.tostring
在原始字符串上调用ToObject
与调用new String(primitiveStringValue)
相同。