Получите размеры nativeImage

Согласно стандарту EcmaScript 262. Операторы + и - ведут себя по-разному, когда задействованы строки. Первое преобразует каждое значение в строку. Второе преобразует каждое значение в число.

Из стандарта:

Если Type (lprim) является String или Type (rprim) является String, то верните строку, которая является результатом объединения ToString (lprim) а затем ToString (rprim)

blockquote>

. Это означает, что если в выражении есть строковое значение, все значения, участвующие в операции +, преобразуются в строку. В JavaScript, когда оператор + используется со строками, он объединяет их. Вот почему console.log("5"+1) возвращает «51». 1 преобразуется в строку, а затем «5» + «1» объединяются вместе.

Тем не менее, вышеприведенное правило не применяется к оператору -. Когда вы используете -, все значения преобразуются в номера в соответствии со стандартом (см. Ниже). Поэтому в этом случае "5" преобразуется в 5, а затем 1 вычитается.

Из стандарта:

5 Пусть lnum будет ToNumber (lval).

6 Пусть rnum будет ToNumber (rval).

blockquote>

Определение оператора из стандартного EcmaScript 262.

Оператор +: http://www.ecma-international.org/ecma-262/5.1/# sec-11.6.1 Operator + definition [/g3]

Оператор -: http://www.ecma-international.org/ecma-262/5.1/#sec- 11.6.2 Operator - definition [/g4]

0
задан Noitidart 13 July 2018 в 22:10
поделиться