1. 대괄호 두 개 추가 [] []
대괄호는 문장 블록의 기능이 없으므로 여기서 대괄호 두 개는 배열입니다. 두 개의 배열(객체 유형)을 추가하려면 먼저 값 유형(기본 유형)으로 변환해야 합니다.
1. 값 유형으로 변환하고 valueOf를 호출합니다. []의 valueOf()는 여전히 고유합니다.
var arr = [];
arr.valueOf() === arr; // true
2, 변환됨 to string, toString of [] 빈 문자열입니다
[].toString(); / / ""
String([]) // ""
결과가 나왔습니다. 두 개의 빈 문자열을 추가해도 결과는 여전히 빈 문자열입니다. 즉, 여기서 " "는 숫자 추가가 아닌 문자열 연결을 의미합니다.
2. 중괄호, 대괄호 추가
{} []
여기의 중괄호는 여전히 객체 리터럴이 아니라 빈 명령문 블록입니다. 따라서 제거할 수 있으며 이는
[]
이전에 나타난 두 피연산자가 실제 단일 피연산자가 되었음을 참고하세요. " " 연산자는 피연산자가 하나뿐인 경우 산술 덧셈이라는 한 가지 의미만 나타냅니다. 즉, 여기서는 문자열 연결의 의미가 없습니다.
대괄호 안의 toString()은 빈 문자열로
코드 복사와 동일합니다. 코드는 다음과 같습니다. :
""
" "는 산술 덧셈 연산을 나타냅니다. 문자열이 숫자가 아니므로 숫자형으로 변환됩니다. 이전 기사에서 언급했듯이 빈 문자열은 숫자 유형인 0으로 변환됩니다.
그럼 최종 결과는 0이군요.
3. 대괄호, 중괄호 추가
코드 복사 코드는 다음과 같습니다. 다음과 같습니다:
[] {}
위와 비교해 괄호와 괄호의 순서만 바뀌었습니다. 결과는 다릅니다. 교정기를 오른쪽에 배치한 후에는 위에서 설명한 교정기의 의미가 달라집니다. 여기서 중괄호는 명령문 블록이 아니라 객체 리터럴입니다.
" "의 양쪽 피연산자는 각각 "" 및 "[object Object]" 값 유형으로 변환됩니다. 이때 " "는 문자열 연결을 의미합니다. 즉,
"" "[object Object ]"
결과는 "[객체 개체]"입니다.
4. 괄호도 넣어보세요 갑자기 변덕! 괄호에는 모호성이 있지만 피연산자로 사용할 수는 없습니다.