一、数组
1. 数组字面量
var arr = [“terry”,“larry”,“tom”];
2. 构造函数
var arr = new Array()
Array继承了Object
数组实例可以调用Array原型中的方法,以及Object原型中的方法
2) 数组的特点
1. 存放任意数据类型
var arr = [“terry”,true,1,{},[]];
2. 数组的长度可以动态增长
arr.push(1);
3. 数组的长度通过length属性来获取,可以通过改变length属性值来扩大或缩小数组长度
4. 数组的索引从0开始,可以超过数组的长度,如果指定索引的值不存在,返回undefined
3) 访问数组中元素
中括号访问符
4) 数组的遍历
for(var key in arr){
var val = arr[key]
}
二、数组API,Array原型[方法区]中的方法
1.会改变调用它们的对象自身的值(9个)
方法 | 作用 |
---|---|
pop() | 删除并返回数组的最后一个元素 |
push(element1, …, elementN) | 向数组的末尾添加一个或更多元素,并返回新的长度 |
reverse() | 颠倒数组中元素的顺序,并返回该数组的引用 |
shift() | 删除并返回数组的第一个元素 |
sort(compareFunction) | 对数组的元素进行排序,并返回该数组 |
splice(startIndex, deleteCount, addItem1, addItem2, …addItemN) | 在任意的位置给数组添加或删除任意元素,返回被删除的元素组成的数组;没有删除时,返回空数组 |
unshift(element1, …, elementN) | 向数组的开头添加一个或更多元素,并返回新的长度 |
copyWithin(targetIndex,startIndex,endIndex) | 用于数组内元素之间的替换,替换元素和被替换元素都是数组内的元素 |
fill(value,startIndex,endIndex) | 用于数组元素替换,指定某个值替换数组指定区间内的元素 |
2.不会改变调用它们的对象自身的值(8个)
方法 | 作用 |
---|---|
concat(value1,value2,…valueN) | 连接两个或更多的数组,并返回结果 |
slice(startIndex,endIndex) | 从某个已有的数组返回选定的元素 |
join(separator) | 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔 |
toString() | 数组中的元素将调用各自的 toLocaleString 方法 |
toLocaleString() | 把数组转换为本地数组,并返回结果 |
indexOf(searchElement,fromIndex) | 查找元素在数组中第一次出现时的索引,如果没有,则返回-1;有,则返回对应索引 |
lastIndexOf(searchElement,fromIndex) | 查找元素在数组中最后一个出现时的索引,如果没有,则返回-1;有,则返回对应索引 |
includes(searchElement,fromIndex ) | 判断当前数组是否包含某指定的值,如果使返回true,否则返回false |
3.遍历方法(12个)
方法 | 作用 |
---|---|
forEach(callback,thisObj) | 指定数组的每项元素都执行一次传入的函数,返回值为undefined |
every(callback,thisObj) | 使用传入的函数测试所有元素,只要其中有一个函数返回值为 false,那么结果为 false;只有全部返回 true,才为 true |
some(callback,thisObj) | 使用传入的函数测试某些元素,只要有一个函数返回值为true,则结果为true;若全部返回false,才为 false |
filter(callback,thisObj) | 使用传入的函数测试所有元素,并返回所有通过测试的元素组成的新数组 |
map(callback,thisObj) | 遍历数组,使用传入函数处理每个元素,并返回函数的返回值组成的新数组 |
reduce(callback,initialValue) | 方法接收一个方法作为累加器,数组中的每个值(从左到右)依次累计,返回汇总后的单个结果值 |
reduceRight(callback,initialValue) | 方法接收一个方法作为累加器,数组中的每个值(从右到左)依次累计,返回汇总后的单个结果值 |
findIndex(callback,thisObj) | 返回数组中满足提供的测试函数的第一个元素的索引,否则返回-1 |
find(callback,thisObj) | 返回数组中满足提供的测试函数的第一个元素的值;如果没有,则返回undefined |
entries() | 返回一个数组迭代器对象,该对象包含数组中每个索引的键值对。用于遍历迭代器取得原数组的[key,value] |
keys() | 返回一个数组迭代器对象,该对象包含数组中每个索引键 |
values() | 返回一个数组迭代器对象,该对象包含数组中每个索引对应的值 |
参数:
callback -> 用来测试每个元素的函数,该函数接收三个参数:
value 元素的值
index 元素的索引
array 被遍历的数组
thisObj-> 可选参数,用来当做callback 函数内的this对象
reduce()中的参数:
callback -> 执行数组中每个值的函数,该函数接收四个参数:
previousValue 累计器累计回调的返回值,或initialValue
value 当前被处理的元素
index 当前被处理的元素的索引
array 数组本身
initialValue-> 可选参数,作为第一次调用 callback函数时的第一个参数的值
三、函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
alert("Hello World!");
}
</script>
</head>
<body>
<button onclick="myFunction()">点击这里</button>
</body>
</html>
1.函数创建方式
函数声明:
function sayHello(){
}
函数表达式:
var sayHello=function(){}
var obj={};
2.函数调用方数
方法的调用方式:
1)函数名()
sayHello()
2)函数名.call();
sayHello.call(this.实参列表);
3)函数名.apply()
sayHello.apply(this.实参数组);
构造函数的调用方式:
new sayHello();
3.函数的内部属性
特点:只有在函数调用的时候才能确定属性的值
this
环境对象
this的取值与函数的调用方式有关
1)如果使用括号调用
括号前面是不是函数名,如果是函数名继续往前看是否有点,如果有点,那么this就是点前面的那个值
2) 如果使用apply或者call方法调用
this就是apply或call的第一个参数
3) 如果使用new调用,那么this指向内存中新开辟的空间
arguments
是函数保存实参的真正所在
类数组对象
var arguments={
'0':'baist',
'1':'baist'
}
var arguments=['baisr','bstgh'];
arguments[0]
arguments.length