instanceof, typeof, & Object.prototype.toString
11863 단어 instanceof
instanceof:
1. 왼쪽 조작수는 하나의 대상이고 오른쪽 조작수는 대상을 표시하는 클래스이다. 만약에 왼쪽 대상이 오른쪽 클래스의 실례라면 표현식은true를 되돌려주고 그렇지 않으면false를 되돌려준다.
2. 왼쪽의 조작수가 대상이 아니라면false로 되돌아갑니다
3. 오른쪽의 조작수가 함수가 아니면 버퍼링 유형 오류 이상
4、obj instanceoff를 계산할 때 f.prototype을 계산한 다음에 원형 체인에서 obj를 찾습니다.obj가 f 또는 f 부류의 실례를 찾으면true로 되돌아갑니다
eg: 원시값과 대상의 차이에 주의하십시오//instanceof
var data = [1, 2, 3, 4, 5];
data instanceof Array; //true
data instanceof Object; //true
data instanceof Number; //false
1 instanceof Number; //false
1 instanceof Object; //false
var num = 1;
num instanceof Number; //false
num instanceof Object; //false
var num = Number(1);
num instanceof Number; //false
num instanceof Object; //false
Number(1) instanceof Number; //false
Number(1) instanceof Object; //false
var num1 = new Number(1);
num1 instanceof Number; //true
num1 instanceof object; //true
null instanceof Object; //false;
undefined instanceof Object; //false;
var data = [1, 2, 3, 4, 5];
var bb = {};
var cc = function(){};
data instanceof bb; //TypeError: Expecting a function in instanceof check, but got #<Object>
data instanceof cc; //false
typeof
typeof a: typeof 이후의 조작수는 임의의 종류일 수 있으며, 반환값은 조작수 형식의 문자열입니다//typeof
typeof undefined; // "undefined"
typeof null; // "object"
typeof ture; // "boolean"
typeof false; // "boolean"
typeof NaN; // "number"
typeof Infinity // "number"
typeof 1 //"number"
typeof "abc"; //"string"
typeof function(){}; // "function"
typeof RegExp; //"function"
typeof Math; //"object"
Object.prototype.toString
기본 toString 방법: Object.prototype.toString()이 [object class]로 되돌아와 대상의 유형 정보를 얻을 수 있습니다
eg: var data = [1, 2, 3, 4, 5];
Object.prototype.toString.call(data); //"[object Array]"
우리는 다음과 같은 함수 반환 대상의 유형 정보를 정의할 수 있다function classof(obj){
if(obj === null){
return "Null";
}
if(obj === undefined){
return "Undefined";
}
return Object.prototype.toString.call(obj).slice(8, -1);
}
테스트:classof(null); // "Null"
classof(undefined) // "Undefined"
classof("abc"); // "String"
classof([]); // "Array"
classof({}); //"Object"
classof(//); // SyntaxError: Unexpected token }
classof(/,/); //"RegExp"
classof(new Date()); //"Date"
classof(window); // "global"
classof(function(){}); // "Function"
function f(){}; classof(new f()); //"Object"
주의 사항:
1. 자바스크립트에서 원시 값(숫자, 문자열, 볼 값,null,undefined)을 제외한 것은 모두 대상이다
2. 자바스크립트는 정수치와 부동점 수치를 구분하지 않는다
3. 모든 Javascript 값은 부울 값으로 변환할 수 있고 아래의 값은false로 변환할 수 있다undefined
null
0 / -0
NaN
""
따라서 대상이 null인지 아닌지를 검사하려면 직접if(obj)가 아닌 다음과 같은 방식을 사용해야 한다.if(obj !== null)
4,null은 키워드로 특수한 대상 값으로 이해할 수 있지만 typeofnull에 대해서는 "object"
5、undefined는 정의되지 않은 것을 나타내는 데 사용되며 키워드가 아닙니다.typeofundefined는 "undefined"로 되돌아옵니다
조회할 때 반환undefined가 존재하지 않으면 함수에 반환값이undefined로 되돌아오지 않습니다.
undefined는 미리 정의된 전역 변수입니다.ECMAScript3에서는 읽기 및 쓰기 변수, ECMAScript5에서는 읽기 전용 변수null == undefined; //true
null === undefined; //false;
null undefined , null undefined . []
6,null과undefined는 어떤 대상이 되기를 기대하는 곳에서든 유형 오류 이상을 일으킬 수 있습니다. 문자열, 숫자, 브리 값과 구별됩니다. 다음 항목을 보십시오.
7. 문자열, 숫자와 부울 값은 대상이 아니지만 그들의 속성이나 방법을 읽을 때 대상과 똑같이 표현되고 그들의 방법과 속성을 사용할 때 그에 대응하는 구조 함수를 통해 임시 대상을 만든다. 예를 들어 다음과 같다.var string = "wish you happy";
var words = string.split(" ");
string javascript new String(string);
그러나 등록 정보에 값을 지정하면 다음과 같은 관련 작업이 무시됩니다.var string = "wish you happy";
string.length = 17;
string.len = 14;
console.log(string.length); //14
console.log(string.len); //undefined
8. 주의해야 할 유형 변환://
undefined: "undefined"
null: "null"
true: "true"
false: "false"
0: "0"
-0: "0"
NaN: "NaN"
Infinity: "Infinity"
-Infinity: "-Infinity"
[]: ""
[1, 2, 3]: "1,2,3"
//
undefined: NaN
null: 0
"": 0
"1.2": 1.2
"wish": NaN
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Java] 객체지향 프로그래밍 - 다형성
객체지향 개념에서 다형성이란 여러가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 프로그래밍적으로 구현했어요.
위 예제처럼 Person...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
//instanceof
var data = [1, 2, 3, 4, 5];
data instanceof Array; //true
data instanceof Object; //true
data instanceof Number; //false
1 instanceof Number; //false
1 instanceof Object; //false
var num = 1;
num instanceof Number; //false
num instanceof Object; //false
var num = Number(1);
num instanceof Number; //false
num instanceof Object; //false
Number(1) instanceof Number; //false
Number(1) instanceof Object; //false
var num1 = new Number(1);
num1 instanceof Number; //true
num1 instanceof object; //true
null instanceof Object; //false;
undefined instanceof Object; //false;
var data = [1, 2, 3, 4, 5];
var bb = {};
var cc = function(){};
data instanceof bb; //TypeError: Expecting a function in instanceof check, but got #<Object>
data instanceof cc; //false
typeof a: typeof 이후의 조작수는 임의의 종류일 수 있으며, 반환값은 조작수 형식의 문자열입니다
//typeof
typeof undefined; // "undefined"
typeof null; // "object"
typeof ture; // "boolean"
typeof false; // "boolean"
typeof NaN; // "number"
typeof Infinity // "number"
typeof 1 //"number"
typeof "abc"; //"string"
typeof function(){}; // "function"
typeof RegExp; //"function"
typeof Math; //"object"
Object.prototype.toString
기본 toString 방법: Object.prototype.toString()이 [object class]로 되돌아와 대상의 유형 정보를 얻을 수 있습니다
eg: var data = [1, 2, 3, 4, 5];
Object.prototype.toString.call(data); //"[object Array]"
우리는 다음과 같은 함수 반환 대상의 유형 정보를 정의할 수 있다function classof(obj){
if(obj === null){
return "Null";
}
if(obj === undefined){
return "Undefined";
}
return Object.prototype.toString.call(obj).slice(8, -1);
}
테스트:classof(null); // "Null"
classof(undefined) // "Undefined"
classof("abc"); // "String"
classof([]); // "Array"
classof({}); //"Object"
classof(//); // SyntaxError: Unexpected token }
classof(/,/); //"RegExp"
classof(new Date()); //"Date"
classof(window); // "global"
classof(function(){}); // "Function"
function f(){}; classof(new f()); //"Object"
주의 사항:
1. 자바스크립트에서 원시 값(숫자, 문자열, 볼 값,null,undefined)을 제외한 것은 모두 대상이다
2. 자바스크립트는 정수치와 부동점 수치를 구분하지 않는다
3. 모든 Javascript 값은 부울 값으로 변환할 수 있고 아래의 값은false로 변환할 수 있다undefined
null
0 / -0
NaN
""
따라서 대상이 null인지 아닌지를 검사하려면 직접if(obj)가 아닌 다음과 같은 방식을 사용해야 한다.if(obj !== null)
4,null은 키워드로 특수한 대상 값으로 이해할 수 있지만 typeofnull에 대해서는 "object"
5、undefined는 정의되지 않은 것을 나타내는 데 사용되며 키워드가 아닙니다.typeofundefined는 "undefined"로 되돌아옵니다
조회할 때 반환undefined가 존재하지 않으면 함수에 반환값이undefined로 되돌아오지 않습니다.
undefined는 미리 정의된 전역 변수입니다.ECMAScript3에서는 읽기 및 쓰기 변수, ECMAScript5에서는 읽기 전용 변수null == undefined; //true
null === undefined; //false;
null undefined , null undefined . []
6,null과undefined는 어떤 대상이 되기를 기대하는 곳에서든 유형 오류 이상을 일으킬 수 있습니다. 문자열, 숫자, 브리 값과 구별됩니다. 다음 항목을 보십시오.
7. 문자열, 숫자와 부울 값은 대상이 아니지만 그들의 속성이나 방법을 읽을 때 대상과 똑같이 표현되고 그들의 방법과 속성을 사용할 때 그에 대응하는 구조 함수를 통해 임시 대상을 만든다. 예를 들어 다음과 같다.var string = "wish you happy";
var words = string.split(" ");
string javascript new String(string);
그러나 등록 정보에 값을 지정하면 다음과 같은 관련 작업이 무시됩니다.var string = "wish you happy";
string.length = 17;
string.len = 14;
console.log(string.length); //14
console.log(string.len); //undefined
8. 주의해야 할 유형 변환://
undefined: "undefined"
null: "null"
true: "true"
false: "false"
0: "0"
-0: "0"
NaN: "NaN"
Infinity: "Infinity"
-Infinity: "-Infinity"
[]: ""
[1, 2, 3]: "1,2,3"
//
undefined: NaN
null: 0
"": 0
"1.2": 1.2
"wish": NaN
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Java] 객체지향 프로그래밍 - 다형성
객체지향 개념에서 다형성이란 여러가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 프로그래밍적으로 구현했어요.
위 예제처럼 Person...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
var data = [1, 2, 3, 4, 5];
Object.prototype.toString.call(data); //"[object Array]"
function classof(obj){
if(obj === null){
return "Null";
}
if(obj === undefined){
return "Undefined";
}
return Object.prototype.toString.call(obj).slice(8, -1);
}
classof(null); // "Null"
classof(undefined) // "Undefined"
classof("abc"); // "String"
classof([]); // "Array"
classof({}); //"Object"
classof(//); // SyntaxError: Unexpected token }
classof(/,/); //"RegExp"
classof(new Date()); //"Date"
classof(window); // "global"
classof(function(){}); // "Function"
function f(){}; classof(new f()); //"Object"
1. 자바스크립트에서 원시 값(숫자, 문자열, 볼 값,null,undefined)을 제외한 것은 모두 대상이다
2. 자바스크립트는 정수치와 부동점 수치를 구분하지 않는다
3. 모든 Javascript 값은 부울 값으로 변환할 수 있고 아래의 값은false로 변환할 수 있다
undefined
null
0 / -0
NaN
""
따라서 대상이 null인지 아닌지를 검사하려면 직접if(obj)가 아닌 다음과 같은 방식을 사용해야 한다.
if(obj !== null)
4,null은 키워드로 특수한 대상 값으로 이해할 수 있지만 typeofnull에 대해서는 "object"
5、undefined는 정의되지 않은 것을 나타내는 데 사용되며 키워드가 아닙니다.typeofundefined는 "undefined"로 되돌아옵니다
조회할 때 반환undefined가 존재하지 않으면 함수에 반환값이undefined로 되돌아오지 않습니다.
undefined는 미리 정의된 전역 변수입니다.ECMAScript3에서는 읽기 및 쓰기 변수, ECMAScript5에서는 읽기 전용 변수
null == undefined; //true
null === undefined; //false;
null undefined , null undefined . []
6,null과undefined는 어떤 대상이 되기를 기대하는 곳에서든 유형 오류 이상을 일으킬 수 있습니다. 문자열, 숫자, 브리 값과 구별됩니다. 다음 항목을 보십시오.
7. 문자열, 숫자와 부울 값은 대상이 아니지만 그들의 속성이나 방법을 읽을 때 대상과 똑같이 표현되고 그들의 방법과 속성을 사용할 때 그에 대응하는 구조 함수를 통해 임시 대상을 만든다. 예를 들어 다음과 같다.
var string = "wish you happy";
var words = string.split(" ");
string javascript new String(string);
그러나 등록 정보에 값을 지정하면 다음과 같은 관련 작업이 무시됩니다.
var string = "wish you happy";
string.length = 17;
string.len = 14;
console.log(string.length); //14
console.log(string.len); //undefined
8. 주의해야 할 유형 변환:
//
undefined: "undefined"
null: "null"
true: "true"
false: "false"
0: "0"
-0: "0"
NaN: "NaN"
Infinity: "Infinity"
-Infinity: "-Infinity"
[]: ""
[1, 2, 3]: "1,2,3"
//
undefined: NaN
null: 0
"": 0
"1.2": 1.2
"wish": NaN
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Java] 객체지향 프로그래밍 - 다형성객체지향 개념에서 다형성이란 여러가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 프로그래밍적으로 구현했어요. 위 예제처럼 Person...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.