文章列表

JS数据类型

Champ2026.01.13 17:40访问量0 次阅读
JS数据类型

JS数据类型有

基本类型:string,number,boolean,null,undefined,symbol,bigint

引用类型:object(array,function,date,map,set,promise)

console.log(undefined+1);
//输出NaN(是一个数值类型,但不是一个具体的数字)
console.log(typeof null);
//输出object(历史遗留bug)

undefine 和 null的区别

// undefined - 系统级的缺失
let data;  // 我还没决定放什么数据

// null - 应用级的缺失
let data = null;  // 我明确表示这里没有数据

undefined

  • 表示变量未定义值不存在

  • 是 JavaScript 引擎默认赋予的

  • 常见场景:

    javascript

    let a;          // a 是 undefined
    function foo() {} // foo() 返回 undefined
    obj.unknownProp // 访问不存在的属性
    

null

  • 表示有意识设置的“空值”

  • 开发者主动赋值

  • 常见场景:

    javascript

    let user = null; // 明确表示用户不存在
    let element = document.getElementById('nonexistent'); // 返回 null
    

检查数据类型的方法

//typeof 基本数据类型管用,引用数据类型不管用
console.log(typeof 'abc') //Array
console.log(typeof [1,2,3]) //object(不管用,还是不知道是什么)

//instanceof 引用数据类型管用,基本数据类型不管用
console.log( [] instanceof Array) //true
console.log( 'abc' instanceof String) //false

//constructor 基本都管用
console.log(('abc').constructor === String)//true dude
console.log([1,2,3].constructor === Array)//true dude

// Object.prototype.toString.call() 都管用
var opt = Object.prototype.toString
console.log(opt.call(2))// [object Number]

console.log(opt.call('abc'))// [object String]
console.log(opt.call([2,2,3]))// [object Array]
console.log(opt.call({name:'Alice',age:20}))// [object Object]
console.log(opt.call(()=>'hi'))// [object Function]
历史留言 (0)
ICP备案号浙ICP备2026065730号-1公安备案号浙公网安备33019202003213号