js 연산자 단일 및 수직 막대 '|' 및 '||'의 사용법 및 기능에 대한 자세한 설명

高洛峰
풀어 주다: 2016-12-07 15:43:39
원래의
1794명이 탐색했습니다.

JS 개발 애플리케이션에서는 일반적으로 "|" 및 "||"를 접하게 되는데, 작업에서 "|"는 무엇을 의미합니까?

js 정수 연산에서는 소수점(parseInt)을 제거하는 것과 같습니다. 양수인 경우 Math.floor()와 동일하고, 음수인 경우 Math.ceil()과 동일합니다. 참고:

1 Math.ceil()이 사용됩니다. 반올림합니다.
2. Math.floor()는 내림에 사용됩니다.
3. Math.round() 반올림은 우리 수학에서 흔히 사용됩니다.

console.log(0.6|0)//0
console.log(1.1|0)//1
console.log(3.65555|0)//3
console.log(5.99999|0)//5
console.log(-7.777|0)//-7
로그인 후 복사


단일 막대와 수직 막대의 작동 규칙

위의 예를 읽고 나면 우리는 일반적으로 단일 막대와 수직 막대의 수직 막대를 추출할 수 있습니다. 적분 연산은 양수 부분만 유지하고 소수 부분은 제거한다는 의미입니다. 그런데 "|0"이 반올림의 목적을 달성할 수 있는 이유는 무엇입니까? 가로 및 세로 막대가 0이 아닌 경우 무엇입니까?

이러한 질문에 대해 다음 예를 살펴보겠습니다.

console.log(3|4); //7
console.log(4|4);//4
console.log(8|3);//11
console.log(5.3|4.1);//5
console.log(9|3455);//3455
로그인 후 복사


여기에는 단일 수직 막대 "|"가 언급됩니다. 하지만 자바스크립트는 없습니다.

여기서 답변을 발표하겠습니다. 실제로 단일 세로 막대 "|"는 이진수로 변환한 후 추가한 결과입니다. 예를 들어 간단한 예를 들어보겠습니다.

3|4

바이너리로 변환한 후 011|100을 추가하여 111=7

4|을 얻습니다. 4

바이너리로 변환한 후 100|100을 더하면 100=4

8|3

바이너리로 변환한 후 1000 |011은 1011=11을 얻기 위해 추가됩니다

여기서는 비유적으로 하나씩 나열하지 않겠습니다. 단일 수직 막대 "|" 연산은 바이너리로 변환한 후 추가된 결과입니다!

JS 이중 수직 막대 연산자

1. JS 이중 수직 막대 연산자: 예 또는 null||'1'과 같은 경우 '1';'2'||'를 반환합니다. ', '2'를 반환합니다. 즉, OR 연산자에서 첫 번째는 true이고 다음은 계산할 필요가 없으므로 '2'를 얻습니다.

2. js에서 이중 수직 막대 연산자 "||"를 사용하여 첫 번째 유효한 값을 반환합니다.

var objOne = undefined || 1 || null || new Date();
var objTwo = new Date();
var objThree = objOne || objTwo;
alert(objThree.toString()); //out put "1"
로그인 후 복사


요약

성능 비교

논리 연산자 && ||에서 &&의 첫 번째 피연산자가 false이면 두 번째 피연산자는 고려하지 않고 바로 false를 반환합니다. ||의 피연산자가 true이면 두 번째 피연산자는 고려되지 않고 true가 직접 반환됩니다. & 및 | 연산자의 경우에는 결과를 얻기 위해 항상 두 피연산자를 비교해야 하므로 && 및 ||의 성능이 더 좋습니다.

함수 사용법

&& 및 ||는 논리 연산만 수행할 수 있고, & 및 |는 "논리 연산"뿐만 아니라 비트 연산도 수행할 수 있습니다.

& 및 |는 원래 비트 연산자가 가능한 이유는 JS가 유형이 없는 언어이고 & 및 |를 사용할 때 각 데이터 유형을 자유롭게 변환할 수 있기 때문입니다. "논리 연산"을 수행하면 true는 실제로 1로 변환되고 false는 0으로 변환된 다음 비트 단위 연산이 수행됩니다.

document.write(true & false); //JS,结果为0
로그인 후 복사


위 문장의 예는 논리 연산을 다음 비트 연산으로 변환하여 실행하는 것과 같습니다.

document.write(1 & 0); //JS,结果为0
로그인 후 복사


이는 또한 및 |가 첫 번째 지점에서 언급한 비트 연산자이기 때문입니다. 결과를 얻으려면 항상 두 피연산자를 비교해야 하므로 && 및 ||보다 성능이 저하됩니다.

위는 js 연산자 "|"와 "||"의 사용법과 기능에 대한 자세한 설명입니다. 더 많은 관련 내용은 PHP 중국어 웹사이트(www.php.cn)를 참고하세요. !


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!