연산 자 & & 의 세 가지 다른 차원
1 층 이해:
작업 수가 모두 불 값 일 때 '&' 는 두 값 에 대해 불 과 (AND) 작업 을 수행 합 니 다.
x==0 && y==0 // x y 0 , true
관계 연산 자의 우선 순위 가 '&' 보다 높다.
2 층 이해:
'& &' 는 실제 값 과 가짜 값 을 불 과 (AND) 로 조작 할 수 있 습 니 다. (가짜 값 은 false, null, undefined, 0, NaN 과 ') 입 니 다. JS 에서 불 값 을 사용 하고 자 하 는 모든 곳 에서 표현 식 과 문 구 는 실제 값 이나 가짜 값 으로 취급 하기 때문에 실제' & '는 항상 true 와 false 로 돌아 가지 않 습 니 다.
null && true // =>null: , ,
true && (5 - 3) // =>2: , ,
3 층 이해:
연산 자가 진짜 값 이나 가짜 값 을 되 돌려 주 려 고 할 때 왼쪽 연산 수의 값 에 따라 두 가지 연산 상황 이 발생 합 니 다. 연산 자 는 먼저 왼쪽 연산 수의 값 을 계산 합 니 다. 만약 계산 결과 가 가짜 값 이 라면 전체 표현 식 의 결과 도 가짜 값 입 니 다. 이때 & & "왼쪽 연산 수의 값 을 간단하게 되 돌려 주 고 오른쪽 조작 수의 값 을 계산 하지 않 습 니 다. 왼쪽 조작 수가 진짜 값 이 라면"& & "오른쪽 동작 수의 값 을 계산 하고 전체 표현 식 의 계산 결과 로 되 돌려 줍 니 다."
var o = {x:1};
var p = null;
o && o.x; // =>1 o , o.x
p && p.y; // =>null: p , , p.y
"& &" 의 행 위 는 때때로 "단락" 이 라 고 부 릅 니 다. 우 리 는 많은 코드 들 이 이러한 특성 을 이용 하여 조건 부 로 코드 를 실행 하 는 것 을 볼 수 있 습 니 다. 예 를 들 어 아래 두 줄 의 코드 는 완전히 등가 입 니 다.
if(a == b) stop();
(a == b) && stop();//
지식의 연장
연산 자 '| |' 과 '&' 도 마찬가지 로 복잡 한 행 위 를 한다.예비 표현 식 에서 첫 번 째 진가 표현 식 을 선택 하 는 데 사용 합 니 다:
// a , , a, a b
// b b, 5
var max = a || b || 5;
이 용법 은 함수 에서 매개 변수 에 기본 값 을 제공 할 수 있 습 니 다.
function copy(o, p) {
p = p || {}; // p ,
// ...
}
연산 자 우선 순위
같은 우선 순위 의 연산 자, 연산 순 서 는 결합 방향 에 의 해 결정 된다.간단하게 기억 하면:! >산술 연산 자 > 관계 연산 자 > & > | > 할당 연산 자
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.