<script>
1..z
</script>
구문 또는 런타임 오류가 없습니다. 숫자와 변수 이름은 다른 것 (123..qwerty
) 일 수 있습니다. 나는이 진술이 무엇을 의미하는지 궁금 하네.JavaScript에서`1..summething '은 무엇을 의미합니까?
<script>
1..z
</script>
구문 또는 런타임 오류가 없습니다. 숫자와 변수 이름은 다른 것 (123..qwerty
) 일 수 있습니다. 나는이 진술이 무엇을 의미하는지 궁금 하네.JavaScript에서`1..summething '은 무엇을 의미합니까?
는 1..z
표현은 단순히 undefined
를 반환합니다, 하지 범위입니다.
왜?
첫번째 점은 당신에게 Number
프리미티브를주는 Numeric Literal의 표시를 종료한다 :
var n = 1.;
숫자 형 리터럴 문법은 다음과 같이 표현된다 :
DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
에는 볼 수 있듯이 점 뒤의 DecimalDigits 부분은 (선택 사항) (opt 접미사)입니다.
1..z; // undefined
1..toString(); // "1"
가 가진 속성에 액세스하는 것과 같습니다
두 번째 점은 속성 접근이며, 그것이이 Number.prototype
객체에 존재하지 않기 때문에 undefined
을있는 z
속성을 얻을 만 시도 할 것이다 괄호 표기법 속성 접근 자 :
1['z']; // or
1['toString']();
이 결합 :
alert(1.foo); // --> parse error
alert(1.4.foo); // --> undefined - number 1.4 doesn't have the property foo
alert(1.); // --> 1 (?)
를 결론 :
alert(1..foo); // --> undefined
잘못된 정보를 제거해 주셔서 감사합니다. – spender
굉장한 답변입니다. – Nicole
감사합니다. 아주 좋은 설명. – Roman