>  기사  >  웹 프론트엔드  >  js 암시적 변환에 대한 지식 설명(예제 포함)

js 암시적 변환에 대한 지식 설명(예제 포함)

不言
不言원래의
2018-09-20 17:04:372045검색

이 기사는 js 암시적 변환에 대한 지식을 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Appetizers

[] == ![]                  //true  ==> "" == false
123 ^ []                   //123   ==> 123 ^ 0
~{}                        //-1    ==> ~0
{} >= {1,2}                //true  ==>因为大于等于的比较,不是相等的比较,所以[object Object] >=[object Object]
[null] == ""               //true  ==> [""] == ""

주요 연산자:

  • 단항 연산자: * 연산자를 포함하여 Number()를 통해 변환, / 연산자, 모두 Number()로 변환

+undefined   //NaN
  • 논리 연산자:! ), 피연산자를 부울 유형으로 변환합니다

  • Bit 연산: ~, |, &, ^; 피연산자 중 하나가 NaN이면 동일할 수 있습니다. 피연산자가 0;

//由以下变化可以证得:
NaN ^ NaN ^ NaN = 0
  • plus 연산자인 경우 더 복잡해요

우선순위가 가장 높은 것은 문자열입니다. 문자열에 피연산자가 추가되면 문자열(x)이 되고 문자열 접합을 수행합니다

console.log("a" + 1);           //"a1"
console.log("a" + "1");         //"a1"
console.log("a" + false);       //"afalse"
console.log("a" + undefined);   //"aundefined"
console.log("a" + NaN);         //"aNaN"
console.log("a" + null);        //"anull"
console.log("a" + {});          //"a[object Object]"

둘째, 숫자, 객체는 정상적인 상황에서 문자열 유형을 출력합니다

//console.log(1 + "1");     //"11"
console.log(1 + 1);         //2
console.log(1 + true);      //2 
console.log(1 + undefined); //NaN
console.log(1 + NaN);       //NaN
console.log(1 + null);      //1
console.log(1 + {});        //"1[object,Object]"

한 쪽이 Boolean이거나 두 쪽 모두 Boolean인 경우 Number로 처리됩니다. 마찬가지로 undefound와 null

console.log(true + true);      //2 
console.log(true + undefined); //NaN
console.log(true + NaN);       //NaN
console.log(true + null);      //1
console.log((true + [NaN]));   //"trueNaN"
  • minus 기호도 마찬가지입니다. Number()는 양면에서 처리됩니다

  • 비교 연산: ==, >, <, >=, >=, != 규칙을 따르세요(Elevation 3에서 발췌):

1. null과 undefine은 동일합니다.
2. null과 undfined는 다른 값으로 변환할 수 없습니다.
3. 피연산자 중 하나가 NaN이면 동등 연산자는 fasle을 반환하고, 불평등 연산자는 true를 반환하며, NaN은 NaN과 같지 않습니다.
4. 동일한 객체(동일한 주소)를 가리키는 두 객체 간의 비교. 항등 연산자는 true를 반환하고, 그렇지 않으면 false를 반환합니다.

주목할 만한 점: 객체 간 >= 및 ==(!=의 비교 방법 )는 다릅니다. 전자는 toString() 반환 값의 비교이고, 후자는 양쪽이 문자열인 경우 문자 인코딩 크기에 따라 수행됩니다. 문자열, 객체 등을 숫자형 값으로 변환한 후 비교해 보세요;

console.log("NaN" == NaN);         //false
console.log(undefined == null);    //true
console.log({} >= {1:2});          //true
console.log({1:2} != {});          //true
console.log({} == {1:2});          //false
console.log([1] == [1]);           //false
console.log(null == 0);            //false

위 내용은 js 암시적 변환에 대한 지식 설명(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.