>  기사  >  웹 프론트엔드  >  JavaScript 유형 간 비교 공유

JavaScript 유형 간 비교 공유

零下一度
零下一度원래의
2017-06-26 13:26:571085검색

JavaScript 유형

기본 유형:

  • number

  • string

  • boolean

  • null

  • undefine

객체 유형:

  • Object

  • function

  • Array

  • Date

  • ...

암시적 변환

+/- 연산+/- 运算

  • "37" + 7 = "377"

  • "37" - 7 = 30

== 运算

以下为true:

  • "1.23" == 1.23

  • 0 == false

  • null == undefined

比较运算

===严格等于

  • 类型不同,返回false

  • 类型相同,以下为true:

  • null === null

  • undefine === null

  • NaN != NaN

  • new Object != new Obejct

==等于

  • 类型相同,同===

  • 类型不同,尝试类型转换比较

  • null == undefined

  • number == string 转number

  • boolean == ? 转number

  • Object == number | string 尝试对象转换为基本类型

  • 其他:false

包装类型

为了便于操作基本类型值,Js提供了基本类型的自动包装功能,每单读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,并在调用后自动销毁。

由于基本包装类型和基本类型的含义并不一样,会导致typeof等操作产生不同的结果,不推荐显示实例化基本数据类型

var a = "string";
alert(a.length);    //6

a.t = 3;
alert(a.t);         //undefined

类型检测

typeof

以下为true:

typeof 100 === “number”
typeof true === “boolean”
typeof function () {} === “function”
typeof(undefined) ) === “undefined”
typeof(new Object() ) === “object”
typeof( [1, 2] ) === “object”
typeof(NaN ) === “number”   //NaN也为number
typeof(null) === “object”

instanceof

obj instanceof Object

"37" + 7 = "377 "

"37" - 7 = 30

  • == 작업

  • 다음은 true입니다.

  • "1.23" == 1.23

  • 0 == false

🎜null == undefine🎜🎜🎜🎜비교 연산🎜🎜===엄격히 🎜🎜🎜🎜유형과 동일, false 반환🎜🎜🎜🎜동일한 유형, 다음은 true입니다. 🎜🎜 🎜🎜null === null🎜🎜🎜🎜undefine === null🎜🎜🎜🎜NaN != NaN🎜🎜🎜🎜new Object != new Obejct🎜🎜🎜🎜==은(는) 🎜🎜 🎜🎜동일한 유형, 동일 ===🎜🎜🎜🎜다른 유형, 비교하려면 유형 변환을 시도하세요🎜🎜🎜🎜null == 정의되지 않음🎜🎜🎜🎜number == 문자열 number🎜🎜🎜🎜boolean == ? Convert number🎜🎜🎜🎜Object == number | string 객체를 기본 유형으로 변환해 보세요🎜🎜🎜🎜Others: false🎜🎜🎜🎜Packaging type🎜🎜 Js는 자동 기본 유형 패키징 기능을 제공하며, 기본 유형 값을 읽을 때마다 해당 기본 패키징 유형의 객체가 백그라운드에 생성되고 호출 후 자동으로 소멸됩니다. 🎜🎜기본 패키징 유형과 기본 유형의 의미가 다르기 때문에 typeof와 같은 작업은 다른 결과를 생성합니다. 인스턴스화된 기본 데이터 유형을 표시하는 것은 권장되지 않습니다.🎜
[1, 2] instanceof Array === true
new Object() instanceof Array === false
🎜유형 감지🎜🎜typeof🎜🎜다음은 사실입니다.🎜
Object.prototype.toString.apply([]); === “[object Array]”;
Object.prototype.toString.apply(function(){}); === “[object Function]”;
Object.prototype.toString.apply(null); === “[object Null]”
Object.prototype.toString.apply(undefined); === “[object Undefined]”

// IE6/7/8 Object.prototype.toString.apply(null) 返回”[object Object]”
🎜instanceof🎜🎜objinstanceofObject는 프로토타입 체인을 사용하여 판단하는데, 이는 객체 간 판단에 적합합니다. 왼쪽에는 개체가 있고 오른쪽에는 함수 개체 또는 함수 생성자가 필요합니다. 🎜🎜다음은 true입니다. 🎜rrreee🎜Object.prototype.toString.apply()🎜rrreee🎜Summary🎜🎜🎜🎜typeof🎜기본 유형 및 기능 감지에 적합하며 null이 발생하면 실패합니다. 🎜🎜🎜🎜[[클래스]]🎜 내장 객체 및 기본 유형에 적합한 {}.toString을 통해 가져옵니다. null 및 정의되지 않은 경우(IE678 등은 [객체 객체] 반환) 실패합니다. 🎜🎜🎜🎜instanceof🎜는 사용자 정의 개체에 적합하며 기본 개체를 검색하는 데에도 사용할 수 있습니다. 서로 다른 iframe과 창을 검색하면 실패합니다. 🎜🎜🎜

위 내용은 JavaScript 유형 간 비교 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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