JavaScript에서 값을 부울 값으로 변환하는 2가지 방법


내가 가장 좋아하는 것은 사용!!이다.이것도 Airbnb의 JavaScript 스타일 가이드가 추천하는 방법이에요.👍
Boolean(value);

!!value;

값을 부울 값으로 변환


한 줄


const string = 'string';

!!string; // true
Boolean(string); // true

숫자


const number = 100;

!!number; // true
Boolean(number); // true

Falsy 값


JavaScript에는 6개의 falsy 값이 있습니다.이 중 하나를 boolean 로 변환하면 false 이 반환됩니다.
false
undefined
null
NaN
0
"" (empty string)
falsy 목록에 없는 모든 내용이 되돌아옵니다. true👍
더 많은 정보, 내 것을 읽으십시오Code Notes on Falsy Values

예제


falsy 값 적용!!
!!false; // false
!!undefined; // false
!!null; // false
!!NaN; // false
!!0; // false
!!''; // false
falsy 값에 적용Boolean
Boolean(false); // false
Boolean(undefined); // false
Boolean(null); // false
Boolean(NaN); // false
Boolean(0); // false
Boolean(''); // false

왜 그래!!작품


첫 번째!는 값을 부울 값으로 강제하고 반전시킵니다.이 경우 !valuefalse 로 돌아갑니다.따라서 이를 되돌리기 위해 true 위에 다른 ! 를 놓았습니다.따라서 이중 사용!!.
const value = 'string';

!value; // false

!!value; // true

주의 "가짜"


const value = 'false';

!!value; // true
Boolean(value); // true
참고 "false" 는 따옴표' 사이에 있습니다.위에는 false 라고 쓰여 있지만 실제로는 문자열이다.나는 너희들 대다수가 속지 않을 것이라는 것을 알고 있지만, 만약 네가 나처럼, 너는 사람들이 너에게 이런 재미있는 심리 수법을 부릴 수 있다는 것을 경계하고 싶을 뿐이다😂

지역사회 투입


: 나는 다음과 같은 그룹에서 허위 값을 필터하는 것을 좋아한다. myArray.filter(Boolean): 난 좋아해 !+! 냉정을 유지하고 다른 사람을 따돌려: P

속도 테스트


나는 테스트 하나를 발견했다.
boolean vs !!
보아하니 !! 보다 조금 빠르다

어떤 것을 사용합니까?


나는 이 게시물에 많은 평론을 받았다.어떤 사람들은 Boolean를 더 좋아한다. 왜냐하면 그것은 더욱 명확하기 때문이다.
그러나'당신은 JS를 몰라요'의 켈 샘슨은 둘 다 명확하다고 말했다.
// better (works explicitly):
if (!!a) {
}

// also great (works explicitly):
if (Boolean(a)) {
}
Kyle Simpson: YDKJS - Coercion
나는 너에게 좋은 답이 하나도 없다고 생각한다.너는 나보다 너의 팀을 더 잘 알게 될 것이다.나는 자신의 개인 프로젝트에서 계속 사용할 것이다 Boolean. 왜냐하면 그 유형이 더욱 적고 이런 문법을 이해하기 때문이다.그러나 만약에 내가 한 팀에 있다면 나는 !! 을 선택할 것이다. 왜냐하면 대부분의 개발자들이 이 점을 더욱 잘 이해할 것이라고 생각하기 때문이다.네가 어느 것을 선택하든지 간에 가장 중요한 것은 시종일관해야 한다.코드 라이브러리에서 이 둘 사이를 전환하지 마십시오.하나를 선택하고 버티세요.💪
게다가 내가 받은 아주 좋은 평론도 있다.

@patrick_developer: I say one should understand both just in case one is presented with different code bases that use each one. Knowledge is power.


다시 말하면, 하나는 결코 다른 것보다 좋지 않다.나는 이것이 더욱 일종의 선호 같다고 생각한다.그러니까 틀리지 않을 거야.그러나 이 둘에 대한 자신의 이해를 박탈하지 마라.패트릭의 말처럼 "지식은 힘이다"💪

부울 값 피하기


객체 유형이 아닌 기본체 사용
var str = 'str';

// Avoid
typeof new Boolean(str); // object

// Preferred
typeof Boolean(str); // boolean
typeof !!str; // boolean
CJ J.: 주의해야 할 것은 new Boolean 부울 값이 아니라 부울 값의 한 실례이다.원어가 더 싸니 대상 유형보다 우선해야 한다.
CJ J.: new Boolean 객체 유형을 반환합니다.new Boolean(str) 기본 부울 값 하나만 반환합니다.나는 Boolean(str)보다Boolean(str)가 빠르다고 의심한다. 왜냐하면 이것은 단지 조작일 뿐이지만 브라우저도 최적화를 실현할 수 있기 때문이다. 그들이 !!str을 보았을 때, 그들은 파라미터를 직접 부르키원으로 바꾸는 것을 알고 있었다.
CJ J: 원어는 싸다. 변할 수 없기 때문에 인용을 공유할 수 있고 실례적으로 어떤 상태도 저장할 필요가 없다.그것은 단지 !! 또는 NOT() 일 뿐이다.하지만 true 은 하나의 대상이다.고유한 내부 상태를 저장할 수 있는 고유한 메모리 주소가 있습니다.이것은 변경할 수 없는 단례 실례에 대한 인용만 저장할 수 없다는 것을 의미한다.false에 대한 매번 호출은 새로운 new Boolean(str) 대상을 실례화한다.
감사합니다.

부울 구조 함수를 사용하여 빈 문자열 삭제


CJ J: 이것은 고전적인 예입니다.쉼표로 구분된 문자열 값 목록을 얻고 빈 문자열을 필터링하려면 볼 구조 함수를 그룹에 전달할 수 있습니다.원형필터링하면 길이가 0인 문자열을 자동으로 제거하고 유효한 문자열 그룹만 남깁니다.
var str = 'some,list,,of,values';
var arr = str.split(',');

arr; // [ 'some', 'list', '', 'of', 'values' ]

arr.filter(Boolean); // [ 'some', 'list', 'of', 'values' ]
감사합니다.

리소스

  • Scotch.io: Logical Not Operator
  • Stack Overflow: What is the not not operator
  • Airbnb JavaScript Style Guide
  • What is the purpose of new Boolean() in Javascript?
  • Double Negation !!x
  • You Don't Know JS: Coercion
  • 원본www.samanthaming.com
  • 읽어주셔서 감사합니다.❤
    인사! |Blog | SamanthaMing.com

    좋은 웹페이지 즐겨찾기