JavaScript基础学习

1.变量类型

(1) 值类型:String(字符串),Number(数值),Boolean(布尔值),Undefined,Null

(2) 引用类型:Array(数组),Object(对象),Function(函数)

区别

1.存储位置不一样

① 值类型的变量会保存在栈内存中,如果在一个函数中声明一个值类型的变量,那么这个变量当函数执行结束之后会自动销毁

② 引用类型的变量名会保存在栈内存中,但是变量值会存储在堆内存中,引用类型的变量不会自动销毁,当没有引用变量引用它时,系统的垃圾回收机制会回收它

2.复制方式不一样

① 值类型的变量直接赋值就是深复制,如 var a = 10; var b = a;那么a的值就复制给b了,b修改值不会影响a

② 引用类型的变量直接赋值实际上是传递引用,只是浅复制

3.数据比较不一样

① 值类型的比较是值的比较,只有当它们的值相等的时候它们才相等。比较的时候注意”==”和”===”,双等号(==)在做比较的时候做了类型转换,而全等号(===)是值和类型相等是才能相等

② 引用类型的比较是引用地址的比较

typeof 运算符可以获取值类型的变量类型,但获取引用类型的变量类型时,会返回Object,这个时候instanceof 运算符就出场了,[] instanceof Array 会返回true

2.JavaScript 内置对象