码迷,mamicode.com
首页 > 其他好文 > 详细

基础类型和复杂类型

时间:2021-01-08 11:20:25      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:json   16px   ber   define   obj   bool   log   地址   复制   

基础类型:number string boolean undefined null
引用类型:object array function
 
基本类型和复杂类型区别:
 
1.存储不同:基本类型的存储,是将值存到栈中;复杂类型的存储,将值存到堆中,将堆的地址存到栈中
2.赋值不同:基本类型的赋值,将值复制一份放到另一个变量空间中;复杂类型的赋值,将栈中存的地址复制一份放到另一个变量空间中 - 两个变量共用一个数据地址
3.全等比较不同:基本类型在比较栈中存的值;复杂类型数据比较的是栈中存的地址是否全等
 
 
解决基础类型和复杂类型的赋值区别的方法:
var arr = [‘a‘,‘b‘,‘c‘];

// 希望brr和arr一样,但是不要共用一个地址

// 1.遍历一个一个放进去
 var brr = [];
 for(var i=0;i<arr.length;i++){
 brr[i] = arr[i]
 }
 console.log(arr,brr);
arr[0] = ‘f‘
 console.log(arr,brr);

// 2.使用concat
 var brr = arr.concat()

// 3.使用slice
var brr = arr.slice()

// 4.使用JSON转换
var brr = JSON.parse(JSON.stringify(arr));
arr[0] = ‘f‘
console.log(arr,brr);

基础类型和复杂类型

标签:json   16px   ber   define   obj   bool   log   地址   复制   

原文地址:https://www.cnblogs.com/mrxiachongyu/p/14243058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!