What's the double exclamation mark for in JavaScript? | Brian Love
If you have ever noticed a double exclamation mark (!!) in someone's JavaScript code you may be curious what it's for and what it does. It's really simple: it's short way to cast a variable to be a boolean (true or false) value. Let me explain. typeof Java
brianflove.com
ㄴ개발자 선배님께 검색 방법 배우면서 찾았던 사이트
다음 값은 JavaScript에서 false 로 간주됩니다 .
- 빈 문자열:""
- 0
- null
- undefined
- NaN
다음 값은 JavaScript에서 truthys로 간주됩니다.
- 물체:{}
- 정렬:[]
- 비어 있지 않은 문자열:"anything"
- 0이 아닌 숫자:3.14
- 날짜:new Date();
코드를 실행하는 JavaScript 엔진은 if 문에서 평가되는 경우와 같이 필요할 때 값을 부울로 변환(또는 강제 변환)하려고 시도합니다.
느낌표가 이중인 이유는 무엇?
어떤 경우에는 변수를 명시적으로 부울 값으로 캐스팅할 수 있습니다. 왜요? 글쎄, 가장 큰 이유는 대부분의 개발자가 유형 안전 비교 연산자를 사용하지 않기 때문입니다.
유형 안전 비교 연산자는 다음과 같습니다.
- 엄격하게 같음:===
- 엄밀히 불평등:!==
유형 안전 비교 연산자를 사용할 때 값이 동일한지(또는 같지 않은지)와 해당 유형이 동일한지 모두 확인합니다. 유형 안전 비교 연산자가 없으면 JavaScript 엔진이 참/거짓 논리를 기반으로 변수를 참 또는 거짓으로 자유롭게 강제 변환할 수 있습니다.
JavaScript 변수를 부울로 변환하려면 두 개의 느낌표를 사용하면 됩니다.
function() {
var name = 'Brian';
//alert 'string'
window.alert(typeof name);
//cast to boolean
var bool = !!name;
//alert 'boolean'
window.alert(typeof bool);
}
위의 예제 코드에서는 문자열 "Brian"을 boolean값으로 캐스팅합니다. 따라서 두 번째 경고는 변수가 이제 boolean값임을 나타냅니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference
JavaScript 참고서 - JavaScript | MDN
이 페이지는 JavaScript 언어에 대한 정보 보관소입니다. 이 참고서에 대해 더 읽어보세요.
developer.mozilla.org
또한 기타 헷갈리는 연산자는 위의 페이지에서 하나하나 찾아보는 방법도 있다.
'JavaScript' 카테고리의 다른 글
[js] 동적 타이핑 (0) | 2022.06.06 |
---|---|
[js] 데이터 타입의 필요성 (0) | 2022.06.06 |
[js] Inheritance prototype chain (0) | 2022.06.03 |
[js] 함수 호이스팅 (0) | 2022.06.02 |
[js] Function (0) | 2022.06.02 |