js数据结构-知识点-数组

1. join和toString

同:都可将数组转换为字符串。

异:join可自定义拼接的连接符号,默认为‘,’ ;而toString只有‘,’

例如:

var a=[1,2,3]

a.join();//'1,2,3'

a,join('-');//'1-2-3'

a.toString();//'1,2,3'

2. 深拷贝,浅拷贝,一层深拷贝

针对引用数据类型产生的问题。引用数据类型的数据,值存放在堆内存中,地址存放在栈内存中。

简单的赋值操作,实际上是将地址赋值给新的变量,因此导致一个变量改变,另一个变量同时改变。即浅复制。

进而,如果要实现深拷贝,使变量间的改变不会相互影响,须要使得实际的赋值操作为操作的变量的值而不是变量的地址。

详细的有:https://www.jianshu.com/p/cf1e9d7e94fb

3. 构造函数创建变量

https://www.jianshu.com/p/4dda15852f36

4.instanceof原理与原型链

https://www.jianshu.com/p/6c99d3678283

5.sort()原理

6.多维数组

JS只支持一维数组,更高纬度的数组由嵌套数组发展而来。

 一维数组:[1,2,3];  //数组的每一个元素是一个标量

二维数组:[["a","b","c"],[1,2,3],123];  //数组的每一个元素是一个一维数组

三维数组:[[["a","b","c"],[1,2,3]],[["a","b","c"],[1,2,3]]];  //数组的每一个元素是一个二维数组

需要注意的是,多维空数组不能直接向某个元素赋值,如

var arr1=[];//一维数组
var arr2=[];//二维数组
var arr3=[];//三维数组
//直接赋值,失败
arr3[0][0][0]=1;
//必须,逐层赋值
arr1[0]=0;
arr2[0]=arr1
arr3[0]=arr2;
//可以直接访问元素
console.log(arr3[0][0][0]);

猜你喜欢

转载自blog.csdn.net/lamanchas/article/details/101354199
今日推荐