1) 对象如何访问
点访问符 对象.属性名
obj.name
obj.age
中括号访问符
var name = "name";
obj[name]
=>
obj["name"]
2) 删除对象中的属性
delete obj.sayName
从obj对象中删除sayName属性
3) Object
根构造函数,所有的对象都直接间接继承Object,所有的对象都可以调用Object原型中的方法或属性
toString()
valueOf()
constructor 构造函数
hasOwnProperty(prop) 判断某个属性是否是自有属性(而非继承属性)
propertyIsEnumerable()判断某个属性是否可以被遍历(是否可以使用for-in循环遍历出来)
...
4) 遍历对象中的属性
增强for循环
for(var key in obj){
var val = obj[key];
}
key属性
obj对象
依次从obj中获取到属性名
5) 检测一个属性是否可以被对象调用
"name" in obj
6) 数组api
arr Array Object
arr可以调用Array.prototype的方法,也可以调用Object.prototype中的方法
api (应用程序编程接口),API实际上就是别人写好的方法供我们来使用,学习API主要考虑以下三点:
作用
参数
返回值
1. 添加或者移除元素 【对原值进行了改变】
push() 入栈,将元素添加到数组的最后
参数:入栈的元素
返回值:入栈后数组的长度
pop() 出栈,将数组中的最后一个元素移除,并且返回
参数:none
返回值:被出栈的元素
shift() 出队,将数组中的第一个元素移除,并且返回
参数:none
返回值:被移除的元素
unshift() 插队,将元素添加到数组的最前面
参数:插队的元素
返回值:插队后数组的长度
2. 排序方法【改变原值】
sort();
默认情况下,按照每位字符在字符编码表中出现的位置进行排序
sort(comparator)
comparator
接受两个参数a,b;
如果a在b之前返回-1
如果a在b之后返回1
3. 截取方法
concat() 【不改变原值】
数组合并
参数:多个数组
返回值:合并的后的新数组
slice(begin [,end])【不改变原值】
截取子数组,并且返回
参数: begin表示截取的开始位置;end默认为0
返回值:截取后的子数组
splice(begin,delete,insert,...)【改变原值】
arr.splice(3,2)//删除从索引为3开始的两个元素
arr.splice(3,2,"terry","larry")//删除聪索引为3开始的两个元素,并且插入Terry,Larry
返回值:被删除的元素组成的数组
4. 索引方法
indexOf()
lastIndexOf()
5. 序列化
arr.join("*")
将数组元素转换为字符串,使用"*"连接arr中的每个元素
6. 迭代
1) 循环方法
forEach(function(item,index,arr){
})
当回调函数每次都返回true,返回值才为true
2) every
every(function(item,index,arr){
return boolean
})
当回调函数有一次返回false,返回值就为false,并且会停止执行
3) some
some(function(item,index,arr){
return boolean
})
当回调函数每次都返回false,返回值才为false
当回调函数有一次返回true,返回值就为true,并且会停止执行
4) filter
filter(function(item,index,arr){
return boolean
})
当回调函数返回true的时候,当前元素会被添加到返回值数组中
5) map
filter(function(item,index,arr){
return v
})
将回调函数的返回值组成一个新的数组返回