对象结构
- 从对象中提取数据
let obj = {
name: 'adc',
age: '17'
}
// 普通写法
var name = obj.name;
var age = obj.age;
// 解构
let {name,age} = obj;
与数组解构有一个重要的不同,数组的元素是按次序排列的,变量的值由它的位置决定 对象解构是没有次序,变量必须与属性同名
let {a} = {x: 1,y = 'b'} //没有匹配成功 undefined
前面的x是匹配模式 后面的x才是变量
let {x:x,y:y} = {y: 'x',x: 'y'}
let {x:a,y:y} = {y: 10, x: 20} // a是变量 a = 20
- 解构也可以设置默认值
let {x = 3} = {} // x=3
let {x = 3} = {x: 10} //x=10
let {x:y=5} = {} // y=5
let {x:y=5} = {x:50} //y=50
- 字符串解构
let [a,b,c] = 'hello'
//a='h,b='e,c='l'
- 函数参数解构
// 有默认值
function add([x=1,y=2]){
rerurn x+y;
}
add([2,3]);
*参数对象
function add({x=0,y=0}){
return x + y;
}
add({x:3,y:4})
拓展
- 字符串
substring(start,stop)//截取 (开始,结束)
substr(strat,length) //截取 (开始,长度)
indexOf() //查找值的位置,如果没有找到返回-1
let str = 'hello world';
str.substring(1,4) // 'ell'
str.substr(1,4) // 'ello'
- es6中的方法
// includes() //判断字符串是否存在,返回值为boolean类型
if(str.includes('w',10)){} //第一个参数为要搜索的值,第二个值为搜索位置
str.startWith('w') // 判断字符串是否在原字符串的头部,第二个参数表示搜索的位置
str.endsWith('w') // 判断字符串是否在原字符串的尾部,第二个参数表示搜索的位置
// 重复 repeat() 返回一个新字符,将原字符重复n次
'x'.repeat(3) //'xxx'
// 补全
//padStart()头部补全
//padEnd()尾部补全
's'.padStart(4,'xy') //'xyxs'
's'.padEnd(4,'xy') // 'sxyx'