Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

可以补充一下 数据类型在堆和栈中存储的不同吗?以及一些数据类型判断如:typeof,instanceof #436

Open
Hoping-for-morning opened this issue May 17, 2024 · 0 comments

Comments

@Hoping-for-morning
Copy link

堆和栈

两种数据类型的存储位置不同

  • 栈:原始数据类型存储在栈中 (Undefined,Null,Boolean,Number,String)
    占据空间小,大小固定
  • 堆:引用类型 (Object,Array,Function)
    占据空间大,大小不固定

数据类型判断

  • typeof
    typeof 是一个运算符,能够返回数据类型
console.log(typeof 2);               // number
console.log(typeof true);            // boolean
console.log(typeof 'str');           // string
console.log(typeof []);              // object  
console.log(typeof function(){});    // function
console.log(typeof {});              // object
console.log(typeof undefined);       // undefined
console.log(typeof null);            // object
  • instanceof
    instanceof 可以正确判断对象的类型,其内部运行机制是判断在其原型链中能否找到该类型的原型
console.log(2 instanceof Number);                    // false
console.log(true instanceof Boolean);                // false 
console.log('str' instanceof String);                // false 
 
console.log([] instanceof Array);                    // true
console.log(function(){} instanceof Function);       // true
console.log({} instanceof Object);                   // true

注意 :instanceof 只能正确判断引用数据类型

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant