console.log(items3.length);//2
console.log(items3[0]);//2
console.log(items3[1]);//3
//4、传入多个值,数组的元素
let items4 = new Array(2, “3”);
console.log(items4.length);//2
console.log(items4[0]);//2
console.log(items4[1]);//“3”
如果给Array构造函数,
* 传入一个数值型的值,则数组的length属性会被设为该值。
* 传入一个非数值型的值,那这个值会成为目标数据的唯一项。
* 如果传入多个值,无论值类型,都会变为数组的元素。
这个特性容易引发错误,因为你不可能总是注意传入数据的类型。
#### 1.2 Array.of()方法
无论参数是什么类型,Array.of()方法总会创建一个包含所有参数的数组。要用Array.of()方法创建数组,只需传入你希望在数组中包含的值即可。
//1、传入一个数值,认为是length值
let items1 = Array.of(1, 2);
console.log(items1.length);//2
console.log(items1[0]);//1
console.log(items1[1]);//2
//2、传入非数值类型,目标数组唯一项
let items2 = Array.of(2);
console.log(items2.length);//1
console.log(items2[0]);//2
//3、传入多个值,数组的元素
let items3 = Array.of(“2, 3”);
console.log(items3.length);//2
console.log(items3[0]);//“2,3”
#### 1.3 Array.from()方法
##### 1.3.1 非数组对象转为数组对象
1、JavaScript不支持直接将非数组对象转换为真实数组,arguments就是一种类数组对象,如果要把它当作数组使用则必须先转换该对象的类型。例如:
function makeArray(arrayLike) {
var result = [];
for (let i = 0, len = arrayLike.length; i < len; i++) {
result.push(arrayLike[i]);
}
return result;
}
function doSomething(){
var args = makeArray(arguments);
//args是一个数组,可以使用args
}
上述方法,先是手动创建一个result数组,再将arguments对象里的每一个元素复制到新数组中。
2、下面是一种比较简单的方法,调用数组原生的slice()方法可以将非数组对象转换为数组。
function makeArray(arrayLike) {
return Array.prototype.slice.call(arrayLike);
}
function doSomething() {
var args = makeArray(arguments);
//args是一个数组,可以使用args
}
//即
var args = Array.prototype.slice.call(arguments);//args即为数组
3、更直接的方法
ES6新添加了一个语义清晰、语法简洁的新方法Array.from()来将对象转化为数组。Array.from()方法可以接受可迭代对象或类数组对象作为第一个参数,最终返回一个数组。
function doSomething(){
var args = Array.from(arguments);
}
Array.from()方法调用会基于arguments对象中的元素创建一个新数组,args是Array的一个实例,包含arguments对象中同位置的相同值。
##### 1.3.2 映射转换
如果想要进一步转化数组,可以提供一个映射函数作为Array.from()的第二个参数。
function translate() {
return Array.from(arguments, (value) => value + 1);
}
let numbers = translate(1, 2, 3);
console.log(numbers);//2,3,4
##### 1.3.3 用Array.from()转换可迭代对象
Array.from()方法可以处理类数组对象和可迭代对象,也就是说该方法能够将所有含有Symbol.iterator属性的对象转换为数组。例如:
let
## Vue 面试题
1.Vue 双向绑定原理
2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
3.你是如何理解 Vue 的响应式系统的?
4.虚拟 DOM 实现原理
5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?
6.Vue 中 key 值的作用?
7.Vue 的生命周期
8.Vue 组件间通信有哪些方式?
9.watch、methods 和 computed 的区别?
10.vue 中怎么重置 data?
11.组件中写 name 选项有什么作用?
12.vue-router 有哪些钩子函数?
13.route 和 router 的区别是什么?
14.说一下 Vue 和 React 的认识,做一个简单的对比
15.Vue 的 nextTick 的原理是什么?
16.Vuex 有哪几种属性?
17.vue 首屏加载优化
18.Vue 3.0 有没有过了解?
19.vue-cli 替我们做了哪些工作?
…
![](https://img-blog.csdnimg.cn/img_convert/50889dbbd16cb5e7307d19c760c66157.webp?x-oss-process=image/format,png)
## 算法
1. 冒泡排序
2. 选择排序
3. 快速排序
4. 二叉树查找: 最大值、最小值、固定值
5. 二叉树遍历
6. 二叉树的最大深度
7. 给予链表中的任一节点,把它删除掉
8. 链表倒叙
9. 如何判断一个单链表有环
10. 给定一个有序数组,找出两个数相加为一个目标数
...
![](https://img-blog.csdnimg.cn/img_convert/0661f2d73c3c1cd33ad874c087b4c914.webp?x-oss-process=image/format,png)
>由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666
. 给定一个有序数组,找出两个数相加为一个目标数
...
[外链图片转存中...(img-oMhBdMHh-1718555905698)]
>由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666