对 JS的数据类型进行判断,首先明确JS一共有以下 7种类型:
String、Number、Boolean、null、undefined、Symbol、
Object(Function|Date|Array | RegExp…)、

  1. const number1 = 1;
  2. const string1 = '1';
  3. const boolean1 = true;
  4. const obj1 = {a:1};
  5. const arr1 = [1,2];
  6. const function1 = function fun(){
  7. return 'fun'
  8. } ;
  9. const date = Date();
  10. const rex = new RegExp()
  11. const null1 = null;
  12. const undefined1 = undefined;
  13. const symbol1 = Symbol()'
  14. const number2 = Number(2);
  15. const number3 = new Number(3);(不推荐类似写法)
  16. const string2 = String('a')
  17. const arr2 = Array([1,2]);
  18. const arr3 = new Array([1,2,3]);

typeof

  1. console.log(number1,typeof number1) // 'number'
  2. console.log(string1,typeof string1) // string
  3. console.log(boolean1,typeof boolean1) // "boolean"
  4. console.log(obj1,typeof obj1) // "object"
  5. console.log(arr1,typeof arr1) // "object"
  6. console.log(rex,typeof rex) // "object"
  7. console.log(function1,typeof function1) // "function"
  8. console.log(date,typeof date) // string
  9. console.log(null1,typeof null1) // "object"
  10. console.log(undefined1,typeof undefined1)// "undefined"
  11. console.log(symbol1,typeof symbol1) // "symbol"
  12. console.log(number2,typeof number2) // "number"
  13. console.log(number3,typeof number3) // "object"
  14. console.log('arr2',arr2,typeof arr2) // object
  15. console.log('arr3',arr3,typeof arr3) // object

存在问题

  1. null 识别成 ‘object’
  2. function 识别成 function, date识别成 ‘string’

other:

  1. Number 和 String 作为普通函数调用的时候,是把参数转化为相 应 的原始数据类型,也就是类似于做一个强制类型转换的操作,而不是默认当做构造函数 调用。此时识别是相应的 number,string
  2. new Number(…),new String(…), new Array(…) 识别成相应的object
  3. 注意和 Array 区分,Array(…)等价于 new Array(…) ,也是 object

    instanceof

    instanceof 用来判断 A是否为B的实例。
    表达式为: A instanceof B,如果A为B的实例,则返回true,否则返回false。
    当 A 的 proto 指向 B 的 prototype 时,就认为 A 就是 B 的实例。

  4. instanceof 不能用于判断原始数据类型的数据,可以用来判断对象的类型 ```javascript console.log(number1,number1 instanceof Number) // false console.log(string1,string1 instanceof String) // false console.log(boolean1,boolean1 instanceof Boolean) // false

console.log(number2,number2 instanceof Number) // false

console.log(number3,number3 instanceof Number) // true

```