JS에는 5 개의 원본 값, 6 가지 유형의 심사 및 9 개의 기본 내장 생성자가 있습니다.
이 569는 JS 언어의 기초를 형성합니다.
5 가지 원래 값은 숫자, 문자, 부울, 무효, 정의되지 않은 것입니다.
Typeof는 판단 할 수 있습니다 : 숫자, 문자, 부울, 대상, 기능, 정의되지 않은. NULL 및 배열, 두 출력 객체를 입력하십시오.
타입은 배열과 객체를 구별 할 수 없습니다. 유형을 판단하는 방법? Object.Prototype.tostring.apply ()를 사용하십시오.
if (value && typeof value === 'Object'&& value.constructor === 배열)
위의 감지가 다른 프레임과 창에서 생성되면 False가 주어지고 창 객체는 다릅니다.
신뢰할 수있는 방법은 if (object.prototype.toString.Apply (value) === "[객체 배열]")입니다.
인수 배열은 배열이 아니라 길이의 멤버 속성을 가진 객체 일뿐입니다.
다음 예에서 볼 수 있듯이 인수는 평범한 배열이 아닙니다.
코드 사본은 다음과 같습니다.
var a = function () {
var b = object.prototype.toString.Apply (인수);
Console.log (b);
}
a (); // output [객체 인수]
코드 사본은 다음과 같습니다.
var a = function () {
var c = [];
var b = object.prototype.tostring.Apply (c);
Console.log (b);
}
a (); // output [객체 배열]
인스턴스가 인스턴스인지 확인하는 방법
프로토 타입의 특성에는 생성자가 있습니다.
기본 프로토 타입 속성은 모든 복잡한 값으로 설정할 수있는 객체 객체입니다. 원래 값으로 설정을 무시하십시오.
그는 모두 객체이지만 특별하고 원형 체인은 각 인스턴스를 생성자의 프로토 타입 속성에 연결합니다. 인스턴스의 __proto__ 인 인스턴스와 생성자의 프로토 타입 속성 사이에는 숨겨진 링크가 있습니다. 동시에, 인스턴스의 생성자 속성은 생성자 함수 프로토 타입의 생성자의 생성자를 통해 얻어진다.
그러나 새 인스턴스에 생성자 속성을 가질 수 있도록 생성자를 유지해야하며 인스턴스를 사용하여 판단 할 수도 있습니다.
코드 사본은 다음과 같습니다.
var foo = function () {}
foo.prototype = {생성자 : foo}
var fooinstance = 새로운 foo;
fooinstance .__ proto __ === foo.prototype; // true
fooinstance.constructor === foo; //진실
실제로 판단의 사례는 다음 예에서 볼 수 있듯이 생성자가 아니라 프로토 타입 체인을 기반으로합니다.
코드 사본은 다음과 같습니다.
var foo = function () {};
foo.prototype = {};
var fooinstance = {};
fooinstance .__ proto __ = foo.prototype;
console.log (fooinstance instance of foo); // true
생성자가없는 원래 값을 사용하십시오
어떤 값은 false : false, "", null, 0, -0, nan, 정의되지 않은, 이들은 거짓이고 다른 값은 사실입니다.
그러나 다음 예에주의를 기울이십시오
코드 사본은 다음과 같습니다.
var a = 부울 (거짓);
var b = 새로운 부울 ( "");
if (a) {console.log (a);} // 출력 할 수 없습니다
if (b) {console.log (b);} // boolean {[[primitivevalue]] : false} 새 녀석은 객체와 동일합니다.
위의 기사는 조금 더 이론적이지만 JavaScript 언어의 기초이므로 명확하게 이해해야합니다.