目录
一、ES6字符串方法
1.repeat()重复功能
2.includes()判定字符串中是否存在某个字符
3.startsWith()判定字符串中是否以某个字符串开头
4.endsWith()判定字符串中是否以某个字符串结尾
二、for of遍历
for of 遍历方式,可以遍历数组也可以遍历字符串,可以直接拿到结果
三、模板字符串
模板字符串:就是把咱们之前字符串的拼接进行了简化处理
语法:``
特点:简化了字符串拼接操作、可以让字符串进行换行操作、可以在模板里面直接使用变量 ${变量名称}
const ul = document.querySelector('ul')
shoppingList.forEach(item=>{
ul.innerHTML += `
<li>
<img src="${item.url}" alt="">
<h3>${item.title}</h3>
<p class="des">${item.des}</p>
<p class="price">${item.price}元起</p>
</li>
`
})
四、解构赋值
// 数组解构
let [a, b, c] = [10, 20, 30]
console.log(a, b, c) // 10 20 30
let [arr, obj, num] = [[1, 2], {a: 1}, 10]
console.log(arr, obj, num)
// 字符串解构
let str = '唱跳RAP篮球'
let [a, b, c, d, e] = str
console.log(a, b, c, d, e) // 唱 跳 R A P
// 对象解构
let obj = {
name: '张三',
age: 18,
like: ['篮球', '足球'],
info: {
id: 1,
des: '他是一个很牛的人'
}
}
//解构的东西必须是对象里面有的属性
let {name, age} = obj
console.log(name, age) // 张三 18
// 交换两个变量的值
let a = 10;
let b = 20;
[a, b] = [b, a]
console.log(a, b)
五、Symbol
创建一个Symbol类型,独一无二,每个Symbol和Symbol之间都不相同
Symbol()括号里面写的是一个描述信息,不是值。因为Symbol类型专门用来做属性的
Object.getOwnPropertySymbols(obj)
六、Set
Set() 里面的数据不能有重复的,自带过滤功能
// 数组去重
let arr = ['a', 'a', 'a', 'b', 'c', 'b']
let s = new Set(arr)
let res = Array.from(s)
console.log(res) // ['a',b','c']
let s = new Set(['a', 'b', 'c'])
// - `add(value)`:添加一个值,返回Set结构本身
// - `delete(value)`:删除某个值,返回布尔值
// - `has(value)`:返回布尔值,表示是否是成员
// - `clear()`:清除所有成员,无返回值
console.log(s.size) // 3
七、Map
问题:无论把什么类型当成对象的键来使用,最终都会把这个类型转成字符串类型来展示。有时候需要的是就是这个类型本身当初对象的键
Map()对象,专门可以解决以上的问题。你写的是什么类型作为对象的键,那么就是什么类型
let arr = [10, 20]
let mp = new Map([
[10, '我是一个数字'],
[{a: 1}, '我是对象,但是我可以当成键'],
[arr, '我是数组']
])
//获取长度
console.log(mp.size)
// `keys()` : 取出Map里面所有的键
// `values()` : 取出Map里面所有的值
// `entries()` :取出里面所有的键和值
// `set()` : 增加、修改
// `get()`: 获取
// `has()`: 判断里面有没有这个值 true / false
// `delete()` : 删除
// `clear()` : 清除