JavaScript의 데이터 유형 및 데이터 유형을 감지하는 방법에 대해 자세히 설명합니다.

하나.js의 데이터 형식은 어떤 것들이 있습니까?
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의 데이터 형식에 대한 더 많은 자료는 저희 다른 관련 글을 참고하세요!

좋은 웹페이지 즐겨찾기