Maison > Questions et réponses > le corps du texte
Pourquoi +'11' peut être converti en nombre 11,
mais le résultat de 1 + '11' est la chaîne '111' ?
淡淡烟草味2017-06-12 09:25:43
Puisque cette réponse existait avant ES6, cette réponse est tirée de ES5.
Source de réponse : ECMAScript5.1 11.4.6
L'opération unaire +
convertit sa valeur d'opération en nombre. Ne demandez pas pourquoi, elle est définie dans la spécification.
Source de réponse : ECMAScript5.1 11.6.1
Étapes de l'opération d'addition :
Convertissez d'abord les valeurs gauche et droiteen métatypes (tels que des chaînes et des nombres) ; par exemple, les booléens seront convertis en nombres, et les objets seront généralement convertis en chaînes, etc. ;
;
阿神2017-06-12 09:25:43
javascript
是弱类型语言,这是一个原因。再有,如果 +
和数字放在一起,被认为是数字的正数,例如 var a = +11
等同于 var a = 11
。这样,而 +
只有在字符串拼接时才会作为拼接的运算符。而 + '11'
就不算是拼接字符串,因为根本没有拼接字符串。所以 js
会将 '11'
隐性的转换为 11
.
Je suis également débutant en js
. C'est ce que je comprends. Si c'est faux, vous pouvez me corriger.
仅有的幸福2017-06-12 09:25:43
+'11' -----> Opérateur unaire
L'opérateur unaire + convertit son opérande en type Nombre.
1+'11' ----> opérateur d'addition
Si l'un des opérandes est de type chaîne, convertissez l'autre opérande en chaîne et renvoyez le résultat de la concaténation des deux chaînes.
漂亮男人2017-06-12 09:25:43
+'11'
的 +
是正负的正,相当于 Number('11')
1 + '11'
是加减的加,调用了内部的 toPrimitive
方法比较,其中一方是字符串的时候会尝试调用另一方的 toString
Méthode