变量类型

2021-03-08  本文已影响0人  鹿啦啦zz

基本类型

null
undefined

number
string
boolean

新增
Symbol
BigInt

引用类型

Object
Array
Date
RegExp
Function

  1. 具有对象特性,即可自由扩展属性
  2. 引用类型都有一个proto属性,属性值是一个普通的对象
  3. 所有的函数,都有一个prototype属性,属性值也是一个普通的对象
  4. 引用类型(数组、对象、函数),proto属性值指向它的构造函数的prototype属性值
var a={}
a.__proto__===Object.prototype
// true
function foo(a){
    a = a * 10;
}
function bar(b){
    b.value = 'new';
}
var a = 1;
var b = {value: 'old'};
foo(a);
bar(b);
console.log(a); // 1
console.log(b); // value: new

类型判断

typeof

typeof 可以得到以下的值
undefined boolean number string object function symbol
注意:

  1. null会得到object
typeof null==="object"
// true
  1. 引用类型除了function 其他都会得到object
typeof []
// "object",
var a=()=>{}
typeof a
// "function"
typeof Symbol()
// "symbol"

instanceof

a instanceof b,查找a原型链上是否含有b

判断类型实操

判断undefined

typeof undefined
// "undefined",注意是小写开头

判断数组

// 1. 
Array.isArray(xxx)
// 2. 
arr instanceof Array

判断类型

Object.prototype.toString.call(1).slice(8,-1)
// "Number",注意是大写开头
上一篇下一篇

猜你喜欢

热点阅读