JavaScript 에서 "+" 의 함정 을 깊이 이해 합 니 다.
[] + []
중 괄호 는 구문 블록 의 역할 이 없 기 때문에 여기 있 는 두 개의 중 괄호 는 하나의 배열 이다.두 배열 (대상 유형) 을 더 하면 값 형식 (기본 유형) 으로 변환 해 야 합 니 다.
1. 값 형식 으로 value Of 를 호출 합 니 다. [] 의 value Of () 는 자신 입 니 다.
var arr = [];
arr.valueOf() === arr; // true
2, 문자열 로 전환, [] 의 toString 은 빈 문자열 입 니 다.
[].toString(); // ""
String([]) // ""
결과 가 나오다.두 개의 빈 문자열 을 더 하면 결 과 는 여전히 빈 문자열 입 니 다.즉, 여기 있 는 '+' 는 숫자 가 아 닌 문자열 연결 을 말 합 니 다.
2. 대괄호 와 중 괄호 의 더하기
{} + []
여기 있 는 큰 괄호 는 여전히 대상 의 직접 양 이 아니 라 빈 구문 블록 입 니 다.따라서 그것 을 없 앨 수 있다.
+ []
이 때 는 이전에 보 였 던 두 개의 연산 수 에서 실제 단 운 산수 로 바 뀌 었 음 을 주의 하 세 요.한편, '+' 연산 자 는 하나의 연산 수 만 있 을 때 하나의 뜻 만 을 대표 한다. 산술 가산.문자열 연결 이라는 뜻 이 없습니다.
괄호 안에 있 는 toString () 은 빈 문자열 이 며,
+ ""
'+' 는 산술 가산 을 대표 하고 문자열 은 숫자 가 아니 므 로 숫자 형식 으로 변환 합 니 다.빈 문자열 을 숫자 형식 으로 바 꾸 었 습 니 다.
그럼 마지막 결 과 는 0.
3. 중 괄호 와 대괄호 를 더 하 다
[] + {}
위의 것 과 비교 하면 중 괄호 와 소괄호 만 순 서 를 교환 했다.결 과 는 달 랐 다.대괄호 를 오른쪽 에 놓 으 면 위 에서 토론 한 대괄호 의 의미 와 다르다.이곳 의 대괄호 는 문장 블록 이 아니 라 대상 이 직접 재 는 것 이다.
"+" 양쪽 의 연산 수 를 값 으로 바 꾸 는 유형 은 각각 "" 와 "object Object" 입 니 다.이 때 "+" 는 문자열 연결 을 표시 합 니 다.즉시
"" + "[object Object]"
결 과 는 '[object Object]' 였 다.
4. 작은 괄호 도 그것들 과 더 해 보 세 요.
돌발 기상!좋아, 작은 괄호 는 다 의성 이 있 지만 연산 수로 쓸 수 는 없어.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.