JavaScript의 데이터 유형 및 데이터 유형을 감지하는 방법에 대해 자세히 설명합니다.
3119 단어 JavaScript데이터 유형검측
js에서 기본 데이터 형식은 다섯 가지가 있는데 그것이 바로string,number,boolean,null,undefined이다. 그러나 ES6에서 새로 추가된 기본 데이터 형식인 Symbol(유일무이한 값을 나타낸다)은 그 역할은 주로 근본적으로 속성 이름의 충돌을 방지하기 위해 설정된 것이다.
기본 데이터 형식 외에 인용 데이터 형식인object도 있는데 복잡한 데이터 형식이라고도 부른다. 우리가 흔히 볼 수 있는 Array,Object,Function 등을 포함한다.
그래서 현재 js의 데이터 유형은 모두 7가지입니다.
PS: Symbol 데이터 유형은 Symbol 함수를 통해 생성됩니다.즉, 대상의 속성명은 현재 원래의 문자열과 현재의 Symbol 유형 두 가지가 있을 수 있다. 속성명은 Symbol 유형에 속하고 유일무이하며 다른 속성명과 충돌하지 않을 수 있다.
Symbol 함수는 Symbol 인스턴스에 대한 설명을 나타내는 문자열 매개변수도 수신할 수 있습니다.
let s = Symbol()
console.log(typeof s) // "symbol"
let s1 = Symbol('s1')
let s2 = Symbol('s2')
console.log(s1) // Symbol(s1)
console.log(s2) // Symbol(s2)
주의: Symbol 함수의 매개 변수는 현재 실례에 대한 설명만 표시하기 때문에 같은 매개 변수의 Symbol의 반환 값은 같지 않습니다.2.js 데이터 형식 검출 방법 (일반적으로 몇 가지가 있습니다):
1. typeof: typeof는 일반적으로 기본 데이터 형식을 검출하는 데 사용됩니다. 인용 데이터 형식이 Objcet로 되돌아오기 때문입니다.
console.log(typeof 1) // "number"
console.log(typeof 'a') // "string"
console.log(typeof undefined) // "undefined"
console.log(typeof true) // "boolean"
console.log(typeof null) // "object"
console.log(typeof ) // "symbol"
function fun(){ }
console.log(typeof fun) // "function"
주의: typeof 검측null도 Object로 되돌아옵니다. 이것은 js가 지금까지 남긴 버그입니다.typeof 검출function으로 되돌아오는 것은'function'입니다.2. instanceof 이 방법은 주로 준비한 검측 인용 데이터 형식(기본 데이터 형식을 검측할 수 없음)으로 구조 함수의 프로토타입 속성이 대상 원형 체인에 나타나는 임의의 위치를 검측하는 데 사용된다.
let fun = function(){ }
fun instanceof Function //true
let obj ={ }
obj instanceof Object //true
let arr = [ ]
arr instanceof Array //true
일찍이 면접관에게 한 문제를 물어본 적이 있다. 1 instance of 돌아온 것은 무엇입니까?그때 자신 때문에 true로 돌아가라고 했는데 지금 생각해보면 Emmm...
1 instanceof Number //false
null instanceof Object // false
instanceof 연산자가 직접 접근하는 변수의 원시 값은 자동으로 패키지 클래스를 만들지 않습니다.따라서 기본 데이터 유형을 판단하는 데 사용할 수 없다.3.Object.prototype.toString()은 모든 데이터 유형을 검사하기 위해 준비할 수 있습니다.
Object.prototype.toString.call([])
// "object Array"
Object.prototype.toString.call(1)
// "object Number"
Object.prototype.toString.call(null)
// "object Null"
Object.prototype.toString.call(undefined)
// "object Undefined"
Object.prototype.toString.call({})
// "object Object"
Object.prototype.toString.call(function add(){})
// "object Function"
....
4. constructor는 원형 체인에 있는 constructor의 방향을 검사하여 볼 값을 되돌려줍니다.
let arr =[]
arr.constructor==Array
// true
let fun = function(){}
fun.constructor==Function
//true
주의:null과undefined는constructor 속성이 없습니다. 다른 방법으로 판단할 수 있습니다.몇 번의 정리를 통해 js의 데이터 유형, 그리고 데이터 유형을 어떻게 측정하는지에 대해 깊은 인식을 가지게 되었고 다음 면접에서 당황하지 마세요~
다음은 JavaScript의 데이터 형식과 데이터 형식을 검출하는 방법에 대한 상세한 내용입니다. JavaScript의 데이터 형식에 대한 더 많은 자료는 저희 다른 관련 글을 참고하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.