变量类型
2021-03-08 本文已影响0人
鹿啦啦zz
基本类型
null
undefined
number
string
boolean
新增
Symbol
BigInt
引用类型
Object
Array
Date
RegExp
Function
- 具有对象特性,即可自由扩展属性
- 引用类型都有一个proto属性,属性值是一个普通的对象
- 所有的函数,都有一个prototype属性,属性值也是一个普通的对象
- 引用类型(数组、对象、函数),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
、
注意:
- null会得到object
typeof null==="object"
// true
- 引用类型除了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",注意是大写开头