왜 js 연산자 "+"인가요?
phpcn_u1582
phpcn_u1582 2017-06-12 09:23:43
0
4
719

왜 +'11'은 숫자 11로 변환될 수 있는데
1 + '11'의 결과는 문자열 '111'인가요?

phpcn_u1582
phpcn_u1582

모든 응답(4)
淡淡烟草味

이 답변은 ES6 이전에 존재했기 때문에 이 답변은 ES5에서 가져왔습니다.

+'11'

답변 출처: ECMAScript5.1 11.4.6

단항 + 연산은 연산 값을 숫자로 변환합니다. 이유는 사양에 정의되어 있습니다.

1 + '11'

답변 출처: ECMAScript5.1 11.6.1

추가 작업 단계:

  1. 먼저 왼쪽 및 오른쪽 값을 메타 유형(예: 문자열 및 숫자)으로 변환합니다. 예를 들어 부울은 숫자로 변환되고 객체는 일반적으로 문자열 등으로 변환됩니다.

  2. 추가하세요
    1. lvalue 또는 rvalue 변환 값 중 하나가 문자열이면 접합 작업을 위해 두 값 모두 문자열로 변환됩니다.
    2. 그렇지 않으면 lvalue와 rvalue를 모두 숫자로 변환한 다음 숫자에 대한 덧셈 연산을 수행합니다. (예를 들어 부울 변환 요소 유형은 문자열이 아니지만 여전히 부울이므로 여기서 이 분기를 판단할 때 부울 숫자 1 또는 0으로 변환)

    3. 결과를 반환합니다.
阿神

javascript 是弱类型语言,这是一个原因。再有,如果 + 和数字放在一起,被认为是数字的正数,例如 var a = +11 等同于 var a = 11。这样,而 + 只有在字符串拼接时才会作为拼接的运算符。而 + '11'就不算是拼接字符串,因为根本没有拼接字符串。所以 js 会将 '11' 隐性的转换为 11.

저도 js초보자입니다. 이것이 나의 이해입니다. 틀린 내용이 있으면 정정해 주시기 바랍니다.

仅有的幸福

+'11' -----> 단항 연산자

단항 + 연산자는 피연산자를 숫자 유형으로 변환합니다.

1+'11' ---->

피연산자 중 하나가 문자열 유형인 경우 다른 피연산자를 문자열로 변환하고 두 문자열을 연결한 결과를 반환합니다.

漂亮男人

+'11'+ 是正负的正,相当于 Number('11')

1 + '11' 是加减的加,调用了内部的 toPrimitive 方法比较,其中一方是字符串的时候会尝试调用另一方的 toString 방법

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿