Как и почему работает приведение типа JavaScript? - PullRequest
3 голосов
/ 30 мая 2020

var x = 5;

Если я запустил console.log('The number is ' + x);

Результат будет The number is 5;

Но мой вопрос в том, почему число конвертируется в строку?

Ответы [ 2 ]

3 голосов
/ 30 мая 2020

Это просто потому, что то, что вы написали в команде console.log, выводит строку, поэтому, когда вы используете 'The number is ' + x, то, что вы делаете, по сути, является конкатенацией строк.

С другой стороны, если вы используете console.log(x), вы получите ответ типа int.

Вы можете проверить это здесь:

var x = 5;

console.log("The number is " + x);
console.log(typeof ("The number is " + x));

console.log(x);
console.log(typeof x);

console.log(x + x);
console.log(typeof (x + x));

Вы можете узнать больше об этом в Документах MDN

2 голосов
/ 30 мая 2020

При приведении типов, то есть при сравнении или вычислении двух операндов разного типа, один из них будет преобразован в эквивалентный тип. Причина, по которой number преобразуется в string, заключается в том, что каждое число может быть строкой, но обратное не всегда может быть истинным, поэтому приведение типа всегда преобразует число в строку

...