Строковый литерал JavaScript и строковый объект Object обрабатывают так - PullRequest
0 голосов
/ 30 мая 2018

Я сильно запутался между строковым литералом и строковым типом объекта в 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 в обеих строках отличается, но когда make с помощью toString () возвращает то же самое.Почему и как ????

1 Ответ

0 голосов
/ 30 мая 2018

Почему и Как ????

Object.prototype.toString преобразует значение this в значение объекта:

  1. Еслиthis значение равно undefined, возвращено "[object Undefined]" .
  2. Если значение this равно null, вернуть "[object Null]".
  3. Пусть O будет <a href="https://www.ecma-international.org/ecma-262/8.0/index.html#sec-toobject" rel="nofollow noreferrer">!ToObject</a>(<strong>this</strong> value).
  4. ...

https://www.ecma -international.org/ecma-262/8.0/index.html#sec-object.prototype.tostring

Вызов ToObject для простой строки аналогичен вызову new String(primitiveStringValue).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...