>  기사  >  웹 프론트엔드  >  TypeOf_javascript 스킬에 대한 지식 포인트를 알고 계십니까?

TypeOf_javascript 스킬에 대한 지식 포인트를 알고 계십니까?

WBOY
WBOY원래의
2016-05-16 15:14:331337검색

어제 동료들과 놀았는데, typeof에 관한 코딩 질문이 있었습니다. 저는 typeof에 대한 지식 요약을 여기에서 여러분과 공유하고 싶습니다. 잘못된 점이 있으면 지적해 주시면 함께 발전해 나갈 수 있습니다.

코드는 다음과 같습니다.

<!DOCTYPE html>
<head>
<title>typeof</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<script>
var a= a||null; 
var b= c||null; 
var c= typeof f;
console.log(a);
console.log(b);
console.log(c);
</script>
</body>
</html>

그렇다면 이 코드를 실행하면 크롬 디버거는 무엇을 인쇄할까요?

렌더링을 확인하세요


왜 이런 결과가 나오나요?

먼저 위 그림의 두 null을 분석해 보세요


Javascript는 코드를 실행하기 전에 사전 구문 분석(호이스팅)을 수행하기 때문입니다.

호이스팅이란?

즉, JavaScript에서는 함수의 어느 위치에서든 여러 개의 var 문을 선언할 수 있습니다. 이 문은 함수 상단에서 선언된 것처럼 작동하며 var로 선언된 변수의 초기 값은 정의되지 않습니다. 이러한 동작을 호이스팅이라고 합니다.

따라서 위 코드를 실행하기 전에 Javascript는 먼저 모든 var 변수(a, b, c)를 사전 구문 분석(호이스팅)합니다. a||null이 실행되면 | 이므로 결과는 null입니다.

c||null은 사실입니다.

다시 살펴보겠습니다. 왜 typeof f가 정의되지 않았나요? f가 정의되지 않은 경우 오류가 보고되어야 하지 않나요?

예, 정의되지 않은 변수를 사용하면 브라우저에서 오류를 보고합니다.

그러나 typeof를 사용하여 정의되지 않은 변수를 결정하는 경우 undefound가 반환됩니다.

값 유형을 결정하기 위해 typeof가 사용하는 메커니즘은 무엇인가요? 요약은 다음과 같습니다.

1. 숫자 유형 값의 경우 typeof는 숫자를 반환합니다. 참고: NaN은 JavaScript에서 숫자가 아닌 특별한 값을 나타내기 때문에 숫자 유형이기도 합니다.

2. 문자열 유형 값의 경우 typeof는 문자열을 반환합니다.

3. 부울 유형 값의 경우 typeof는 부울을 반환합니다.

4. 객체, 배열 및 null의 경우 typeof는 객체를 반환합니다

5. 함수 유형의 경우 typeof는 함수를 반환합니다

6. 피연산자가 정의되지 않은 경우(존재하지 않거나 값이 할당되지 않은 경우) 정의되지 않은 값이 반환됩니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.