js基本数据类型
- number
- boolean
- string
- null
- undefined
- object
- symbol
typeof
运算符,确定一个值是何种类型
流程控制语句
if(){ }else if { }else{ }
switch case default
- break | continue
while(){}
do{}while()
for ..in
小练习,通过for...in
来实现浅拷贝与深拷贝
//浅拷贝
//hasOwnProperty 判断自身属性中是否有指定的值
function shallowCopy(oldObj) {
var newObj = { }
for( var i in oldObj) {
if(oldObj.hasOwnProperty(i)) {
newObj[i] = oldObj[i]
}
}
return newObj
}
// 详解,通过枚举,获取到对象里面的健值对,通过hasOwnpropetry(i)来判断i 是否是oldObj中的内容,如果是将其赋值给newObj中
深拷贝
function deepCold(obj) {
var newObj = {}
for(var i in obj) {
if(typeof obj[i] === 'object' ) {
newObj[i] = deepCold(obj[i])
}eles {
newObj[i] = obj[i]
}
}
return newObj
}
为什么多了一步判断是否为对象呢
var obj = {
name: 'abc',
age: 12,
aihao: {
one: '羽毛球',
two: '乒乓球'
} // 进行回调,进一步拷贝其中的aihao里的内容
}
对象
对象: 由若干个健值对组成
- 对象属性可以动态创建,不必在对象生命时就指定
var obj = {}
obj.foo = 123 --- obj.foo // 123
- 查看所有属性
object.keys()
object.keys(obj) // ['foo']
delete删除对象的属性
JSON
JSON.stringify()
可以将一个值转为字符串
JSON.parse()
还原
Array
push
,数组最后一位添加元素
pop
,删除最后一位
unshift
,像数组第一位进行添加
shift
,删除第一位
splice
- splice(a,b,c)
-a代表数组的下标,b代表要删除几位(不删除就用0来表示),c指要替换的内容
slice(a,b)
用下标a开始,到下边b(不包括下标b),作为新数组,原数组不变
reverse()
,对数组进行倒叙,数组本身发生改变
join()
-作用是把数组元素(对象调用其toString()方法)使用参数作为连接符连接成一字符串,不会修改原数组内容
sort
-排序,本身发生改变
concat
-拼接数组
index(element)/lastindexof(element)
检索数组内容的下标,从左开始/从右开始
forEach
遍历数组
map
遍历数组,生成新数组
every
-是所有函数的回调函数都返回true,则返回true;否则遇到false则终止执行,返回false
some
-回调函数有一个返回true,则返回true
filter(function(element))
-返回数组的子集,true放进去
reduce(function(v1,v2),value)/reduceRight(function(v1,v2),value)
-遍历数组,调用回调函数,将数组元素组合成一个值,reduce从索引最小值开始,reduceRight反向,方法有两个参数
- 回调函数:把两个值合为一个,返回结果
- value,一个初始值,可选
网友评论