es6学习笔记(3):对象解构,拓展

88 阅读1分钟

对象结构

  • 从对象中提取数据
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'