TypechoJoeTheme

Toasobi的博客

JavaScript语法记录

本文最后更新于2023年09月18日,已超过366天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
创建对象并赋值
let user = {}
user.age = 10
user[age] = 10
对象拷贝
let teacher = user //浅拷贝,不安全!
object.assign(teacher,user) //user 赋值给teacher 深拷贝!
Json.parse(JSON.stringify(user)) //深拷贝! 通过将对象转为字符串再转为JSON实现拷贝
特殊的语法
//不确定a是否为undefine,可以用这个防止访问报错
let a = null
let b = a ?.name //a对象存在则取其name属性

//其中一个为null则取另外一个
let a = null
let c = 1
let b = a ?? c //a = undefined,则b = c = 1



// 防止访问报错,res为null则为{}
let res;
let res1 = res || {}
console.log(res1.name)


//a为undefine则用b,b为undefine则用a
let a;
let b;
console.log(a ??= b)
访问对象数字属性
let js = {1:'a',2:'b'}
console.log(js[1]) //访问

for(const key in js){
  console.log(key + js[key]) //遍历访问
}
JS数组
let arr = []
let arr1 = new Array()
arr[0] = .... 数组中是允许有undefine的

arr.push() //尾插
arr.splice(0,1) //第一个参数是下标,第二个是往后多少位,这里是删除arr[0]
arr.shift() //头部去掉一个元素
arr.pop() //尾部去掉一个
arr.slice(1,2) //分片,不影响原数组,返回新数组
arr1.concat(arr2) //合并两个数组返回

let str = 'Hello,World'
str.split(',') // -> ['Hello','World'] 以逗号分隔

let arr = [1,2,3,4]
arr.join('||') // -> '1||2||3||4'  

//排序
sort((a,b)=>a-b) //对阿拉伯数字排序
JS数组进阶
//数组处理
let array1 = array.filiter(v=>v.name.include('文')) //过滤出所有名字属性中包含“文”字的对象构成新数组
                                                    //filiter还可以实现删除数组中指定元素
let a = array.find(v=>v.name='omerta') //找出名字为omerta的对象

let index = array.findIndex(v=>v.name='omerta') //找出名字为omerta的对象在数组中的索引
reduce数据处理简单使用
let sum = users.reduce((pre,current)=>{ //将一个用户数组中每个用户的年龄累加起来,并将结果存储在变量 sum 中
  return pre+current.age
},0) //累加器的初始值


let count = users.reduce((pre,current)=>{ //对users对象数组中所有对象的name属性出现次数进行统计
  if(current.name in pre){
    pre[current.name] ++
  }else{
    pre[current.name] = 1
  }
  return pre
},{})
朗读
赞(0)
评论 (0)