一、流程控制语句
1.JavaScript中的流程控制语句有哪些?
2.if多分支语句的执行机理;for循环的执行机理
3.for和while循环各有什么使用场景?
4.break和continue的区别?
continue用于跳过循环中的一个迭代,并继续执行循环中的下一个迭代 break表示终止循环 【难点】
1.累加器和累乘器、穷举法算法思想
二、数组
1.数组是什么?应该如何定义?
var arr = ['A','B','C','D'];
var arr = ('A','B','C','D');
var arr = (4);
//4为数组长度
2.如何检测数组类型?
数组用typeof
检测结果是object
Array.isArray()
用来检测数组“鸭式辨型”
3.数组有哪些常用方法?
1. 常用方法1
2. 常用方法2——splice
方法 (会以数组的形式返回被删除的项)
用于替换数组中的指定项:arr.splice(3,2,'X','Y','Z')
//从下标为3的项开始,连续替换2项 在指定位置插入新项:arr.splice(3,0,'X','Y','Z')
//从下标为3的项开始,连续替换0项 用于删除制定项:arr.splice(2,3)
//没有设置替换的新项,仅删除4项
slice
方法
用于的到子数组,类似字符串的slice()
方法 slice(a,b)
截取的子数组从下表a的项开始,到下标b(但不包含b)结束slice(a,b)
方法不会更改原有数组slice()
如果不提供第二个参数,则表示从指定项开始,提取所有后续的项作为子数组slice()
方法允许为负数,表示数组的倒数第几项
3. 常用方法3——join()
和split()
方法
join()
方法可以将数组 转换为字符串
join()
中的参数表示用什么字符作为连接符 ,如果留空格则默认以逗号为分隔(有点像toString()
方法) split()
方法可以将字符串 转为数组
splice()
的参数表示以什么字符拆分字符串 ,一般不能留空
4. 常用方法
concat
合并连接多个数组,不会改变原数组reverse()
将数组中的全部顺序倒置indexOf()
搜索数组中的元素,并返回他的位置,如果不在数组中,则返回-1includes()
判断一个数组是否包含一个指定的值,返回布尔值(true/false )
5. 有关数组的排序
【难点】
1. 数组的遍历相关算法、去重和随机样本、冒泡排序
2. 基本类型值和引用类型值的区别
基本类型:number boolean string undefined null
引用类型:array object function regext...
+
3. 实现浅克隆
浅克隆与深克隆,浅克隆只克隆数组的第一层,而深克隆要克隆数组的所有层(使用递归技术)
/*浅克隆*/
var arr = [4,3,[2,5],1,4];
var result = [];
for (var i = 0;i<arr.length;i++)
{
result.push(arr[i]);
}
console.log(result);
console.log(arr == result);