08.JS数据类型之间的区别

75 阅读1分钟

数据类型之间的区别

1.存储

基本数据类型有number数字类型,string字符串类型,布尔类型,undefined类型和null类型,然后他们存储的地方是栈内存中;

引用数据类型有对象,函数,数组,然后他们数据本体存放的地址是堆内存中,然后变量名存放的地址是栈内存中

注意: 基本数据类型内部存储的是值,引用数据类型内部存储的是地址

var num = 100
var str = 'abc'
var obj = {
   a:1,
   b:2
}
var arr = [1,2,3,4]

2.赋值

基本数据类型:赋值以后,两个变量之间没有任何关系,相当于将自己的某一个东西,复制一份给你,你的就是你的,我的就是我的

复杂数据类型:赋值以后,因为变量内部存储的是指向堆内存的地址,所以在赋值的时候,其实是将地址给到另一个变量

var num1 = 100
var num2 = num1 // num2===100
num2 = 666
console.log(num1) //100
console.log(num2) //666

3.比较

基本数据类型:就是 值 的比较

引用数据类型:比较的时候 比较的是存储地址 如果地址相同就是true 如果地址不同就是false

var num1 = 100
var num2 = 200
console.log(num1 === num2) //flase

var arr1 = [1,2,3]
var arr2 = arr1
console.log(arr1 === arr2) //true

4.传参

基本数据类型:就是将值拷贝一份传递给形参,在函数内修改,不会影响外界

引用数据类型:将存储地址赋值给形参,在函数内修改会影响外界

function fn(num){
   num = 'qf001'
}
var str = 'abc'
fn(str)
console.log(str) //abc


function fn(o){
   o.name = 'qwer'
}
var obj = {
   name:'ABC'
}
fn1(obj)
console.log(obj.name)//qwer