JS 브라우저는 데이터 유형 및 유형 판단을 구문 분석

### 브라우저 파싱 :
- 분석 및 JS를 렌더링 할 때 브라우저 (코어 엔진), JS는 실행 환경을 제공 할 것입니다 때 1,이 환경은 "글로벌 범위 (백엔드 글로벌 / 고객 서비스 측면 윈도우 범위)"라고합니다
- 코드가 위에서 아래로 실행 2. (전 가변 업 단계가)
현재 범위에 저장된 => 기본 데이터 타입 값
```
A는 12 =이있다;
VAR의 B = A, JS 코드 자체를 기본 유형 결제 위치를 저장하기 위해 스택 메모리에 저장되어있는 스택 메모리의 동작 환경이다.
B = 13;
CONSOLE.LOG (a);

이으로 obj1 = {N : 100};
VAR obj2보다 = OBJ1 상기 기준 객체 저장 부에 저장된 정보의 값의 타입에 힙 메모리 피사체가 키 - 값 쌍, 부호 열 저장 함수 물질 인
obj2보다 [N ''] = 200;
CONSOLE.LOG (obj1.n); // => 200
```
A는 12 =이있다;
VAR의 B = 13, a 및 b는 동작의 값에 따라, 임의의 관계가없는
(12)을 저장하는 1) 우선, 공간을 열어
2) 현재의 변수 범위 A (VAR A의 성명)
3) 그 변수 문 (12) ((12)는 저장에 할당 동료의 저장을 확인 => 할당이라 정의)
원래의 값과는 원래 값의 사본 공간 아무것도 새 위치로 => 기본 유형의 행동의 값에 따라서도 값 유형으로 알려진 재 할당, 기본 데이터 타입이다

(내용이 너무 복잡 저장 될 수 있기 때문에) => 참조 유형의 값은, 우리는 새로운 공간 (즉, 창고)의 상자를 열 필요, 현재 범위에 직접이 공간에 저장된 내용을 저장할 수 없습니다
 
이으로 obj1 = {N : 100};
1) 먼저, 새로운 메모리 영역을 개방 순서 (이 저장된 키의 개체) 백은이 공간이 공간 진수를 찾을 수 있도록
2)) 따라서 가변하는 어드레스 공간 (변수에 할당 된 공간과 관련된 변수를 선언

참조 유형은 참조 주소를 운영하고 어떤 공간 따라야 할 가치되지 않습니다 : 새로운 변수로 원래의 공간 할당의 주소,하지만 다른 복제, 또는 공백이없는 원래의 공간, 그래서 같은과 관련된 변수가 있습니다 공간
값 유형은 동료, 동료 참조 유형은 두 가지 변수를하지.
* 메모리 범위 스택 메모리 내부라는

###
- 1. 형성된 전역
- 2. 코드는 위에서 아래로 실행됩니다
새 메모리 힙을 열고, 힙 메모리 키 - 값 쌍 저장
N : 10,
m : obj.n * 10 => obj.n 경우 힙 메모리의 기억 내용이 아직 완료되지 않고,이 경우에는 어드레스 공간이 제공되지 않는 OBJ OBJ underfined, obj.n IS underfined.n
```
VAR OBJ = {
N : 10,
m : obj.n * 10
};
CONSOLE.LOG (obj.m);
VM165 : 3 catch되지 않은 형식 오류 : 정의되지 않은 재산 'N'을 읽을 수 없습니다
<익명>에서 : 3 : 11
```
올바른 나가 :
```
VAR OBJ = {
N : 10,
};
obj.m = obj.n * 10;
CONSOLE.LOG (obj.m);
=> VM207 6 100
```
판사 문장 ### JS
- 설치 1. / 다른 / 다른 경우
```
VAR의 NUM = 12;
경우 (NUM> 10) {
++;
} 다른 경우 (NUM> = 0 && NUM <= 10) {
num--;
} 다른 {
A + = 2;
}
CONSOLE.LOG (NUM); => 13
```
*는`조건없는 판단 executed`에 관계없이 조건의 설립 뒤에 있는지 여부의 충족이있다
어떻게 조건에 대해 쓰기?
//> = / <= / == (종래의 비교 등) 4 % 2 % 리마인더 => 0
```
(0) {
// => 아니오, 최종 합계는 참 / 거짓 판단 조건이 부울 유형에 (다른 값을 설립 계산해야하는 조건에 기록 된 것을 문제 만 0, underfined NaN의 ''널 (null)은 false입니다 나머지는) 사실이다
}

경우 ( '3px의'+ 3) {
// =>는 JS에서 + - + 이외의 모든 수학적 연산 * / %. 그들은 비 수치 입력 값 인 경우 남은 시간 연산자 먼저 디지털 타입 (번호)로 전환하고 동작을 수행
'3px의'+ 3 => '3px3'
}
경우 ( '3px'-3) {
'3px' -3- => NaN이
}
(NaN이> 3) => FASLE 경우
 
구문 :
경우 (({})> 5)
구문을 직접 테스트 콘솔 ({})> 5 'STR'> (5)
```
BAT 얼굴 질문 :
```
VAR NUM =에서는 parseInt ( '폭 : 35.5px');
경우 (NUM == 355) {
경고 (0);
} 다른 경우 (NUM == 35) {
경고 (1);
} (NUM == NaN이) {// => NaN의 어떤 숫자가 같지 않은 경우에는 그렇지
경고 (2);
} 다른 경우 (대해서 typeof NUM == '수') {
인가 // => 경고 출력 문자열 형식 '3'; 경고 (3)
NUM 대해서 typeof // => 제 연산자
// => 비교합니까
} 다른 {
경고 (4);
}

```

### 유형
여러 가지 방법 JS 감지 형> 하나, 다른
> instanceof를
> 생성자
> Object.prototype.toString.call ()

```
구문 : 대해서 typeof [값] => 검출 값 데이터 형식
반환 값 : 검출 결과는 데이터의 문자열이 네 유형이 포함됩니다. 예를 들면 : "번호"/ "문자열"/ "부울 /"underfined "/"객체 "/"기능 "
대해서 typeof 12 => "번호"
널 대해서 typeof => "개체"대표 널 널 객체 포인터 등 (에는 메모리 공간 없음)
과 typeof 함수 () {} => "기능"
대해서 typeof / ^ / => "개체"
대해서 typeof 진정한 => "부울"
```
`*과 typeof 배열 감지 / 일반 / 객체 반환은 "개체, 단점은 객체가 파괴 될 수 없다는 것입니다." '

인터뷰 질문 :
```
CONSOLE.LOG (대해서 typeof []) => "개체"
CONSOLE.LOG (대해서 typeof 대해서 typeof []) => 유형 "개체"=> "문자열"
```



추천

출처www.cnblogs.com/fron-tend/p/11968198.html