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 중국어 웹사이트의 기타 관련 기사를 참조하세요!