Javascript는 약한 유형의 언어이지만 고유한 여러 데이터 유형(예: Number, String, Boolean, Object, Udefined 및 Null)도 있습니다. 그 중 Object는 복잡한 데이터 유형이며 Object는 순서가 지정되지 않은 키-값 쌍으로 구성됩니다. 나머지 여러 유형은 단순 데이터 유형입니다. 참고: 변수 유형의 첫 글자는 대문자로 표시되고, 변수 값의 첫 글자는 소문자로 표시됩니다.
JavaScript는 사용자 정의 유형을 지원하지 않으므로 JavaScript의 모든 값은 이 6가지 유형 중 하나에 속합니다.
변수가 어떤 데이터 유형인지 알아내려면 typeof 연산자를 사용해야 합니다. typeof는 메소드가 아니라 연산자입니다. 따라서 typeof의 문자 'o'는 소문자입니다.
구문: typeof temp; //temp는 여기에 괄호를 추가할 필요가 없지만 프로그램의 가독성을 위해 괄호를 추가하는 것이 가장 좋습니다.
JavaScript 자체는 typeof를 사용하여 변수 유형을 감지할 수 있지만 일부 결과는 혼란스럽습니다. 예를 들어 배열 유형은 실제로 "Object"입니다.
다음은 다양한 데이터 유형을 판단하기 위해 typeof를 사용한 결과입니다
var myFunction = function() { console.log('hello'); }; var myObject = { foo : 'bar' }; var myArray = [ 'a', 'b', 'c' ]; var myString = 'hello'; var myNumber = 3; typeof myFunction; // 返回 'function' typeof myObject; // 返回 'object' typeof myArray; // 返回 'object' -- 小心哦! typeof myString; // 返回 'string'; typeof myNumber; // 返回 'number' typeof null; // 返回 'object' -- 小心哦! if (myArray.push && myArray.slice && myArray.join) { // 很可能是一个数组 // 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。 } if (Object.prototype.toString.call(myArray) === '[object Array]') { // 肯定是一个数组! // 这是判断一个变量是否为数组的最可靠方法 }