>  기사  >  웹 프론트엔드  >  JavaScript에는 몇 가지 데이터 유형이 있습니까? JavaScript에서 데이터 유형을 결정하는 방법

JavaScript에는 몇 가지 데이터 유형이 있습니까? JavaScript에서 데이터 유형을 결정하는 방법

云罗郡主
云罗郡主앞으로
2018-10-29 14:30:351643검색

JavaScript에는 몇 가지 데이터 유형이 있나요? 이제 막 JavaScript를 접한 많은 친구들이 이런 질문을 할 것이라고 믿습니다. 이 장에서는 JavaScript에 얼마나 많은 데이터 유형이 있는지 소개합니다. JavaScript에서 데이터 유형을 결정하는 방법. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

JavaScript에서 데이터 유형을 결정하는 방법은 무엇입니까? 다음 방법을 사용할 수 있습니다: typeof, 인스턴스of, 생성자, 프로토타입 방법

js에서 유형을 판단하는 방법에 대해 몇 가지 예를 들어보겠습니다.

var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="22";};

1 가장 일반적인 판단 방법: typeof() 방법

alert(typeof a)   ------------> string
alert(typeof b)   ------------> number
alert(typeof c)   ------------> object
alert(typeof d)   ------------> object
alert(typeof e)   ------------> function
alert(typeof f)   ------------> function

The typeof가 반환하는 유형은 모두 문자열 형식입니다. 예를 들면 다음과 같습니다.

alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false

또한 typeof는 객체 유형이 아닌 객체를 결정할 때 더 편리합니다.

2. 알려진 객체 유형을 결정하는 방법:instanceof

alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false

참고:instanceof다음에는 객체 유형이 와야 하며 대소문자는 틀릴 수 없습니다. 이 방법은 일부 조건부 선택이나 분기에 적합합니다.

3. 객체의 생성자를 기준으로 판단: constructor

alert(c.constructor == Array) ----------> true
alert(d.constructor == Date) -----------> true
alert(e.constructor == Function) -------> true

참고: 생성자는 클래스를 상속할 때 오류를 발생시킵니다.

예:

function A(){};
function B(){};
A.prototype = new B(); //A继承自B
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;

instanceof 메서드에는 이 문제가 없으며 객체의 직접 및 간접 상속 모두 가능합니다. true를 보고합니다:

alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;

주제로 돌아가서 생성자의 문제를 해결하는 것은 일반적으로 객체의 생성자가 수동으로 자신을 가리키도록 하는 것입니다:

aobj.constructor = A; //将自己的类赋值给对象的constructor属性
alert(aobj.constructor === A) -----------> true;
alert(aobj.constructor === B) -----------> false; //基类不会报true了;

4. 일반적이지만 매우 번거로운 방법: 프로토타입

alert(Object.prototype.toString.call(a) === ‘[object String]’) -------> true;
alert(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true;
alert(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true;
alert(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true;
alert(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true;
alert(Object.prototype.toString.call(f) === ‘[object Function]’) -------> true;

쓸 수 없습니다. 잘못된 대문자 사용은 더 번거롭지만 보편적인 것보다는 낫습니다.

일반적으로 typeof를 사용하여 Object 유형을 알 수 있는 상황이 발생하면 instanceof 또는 생성자 메서드를 사용할 수 있습니다.

위는 JavaScript에 몇 가지 데이터 유형이 있는지에 대한 것입니다. JavaScript에서 데이터 유형을 결정하는 방법에 대한 전체 소개입니다. JavaScript 비디오 튜토리얼에 대해 더 알고 싶다면 PHP 중국어 웹사이트에 주목하세요.


위 내용은 JavaScript에는 몇 가지 데이터 유형이 있습니까? JavaScript에서 데이터 유형을 결정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lvyestudy.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제