ES6学习笔记-变量的解构赋值、字符串的新增方法

老子叫甜甜 提交于 2020-03-27 16:29:04

3 月,跳不动了?>>>

变量的解构赋值

解构可以用于数组,还可以用于对象。

  1. 对象的解构赋值,可以很方便地将现有对象的方法,赋值到某个变量。
// 例一
let { log, sin, cos } = Math;
// 例二
const { log } = console;
log('hello') // hello
  1. 如果变量名与属性名不一致,必须写成下面这样。
let obj = { first: 'hello', last: 'world' };
let { first: f, last: l } = obj;
f // 'hello'
l // 'world'

上面代码中,first是匹配的模式,f才是变量。真正被赋值的是变量f,而不是模式first。也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。
3. 变量的交换

let x=1
let y=2
[x,y]=[y,x]

字符串的扩展

  1. 字符串模版
// 多行字符串
let tep = `In JavaScript this is
 not legal.`
// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

字符串的新增方法

  1. 实例方法:includes(), startsWith(), endsWith() 这三个方法都支持第二个参数,表示开始搜索的位置。
let s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
2. 实例方法repeat()、padStart(),padEnd() repeat方法返回一个新字符串,表示将原字符串重复n次
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

'hello'.repeat(2) // "hellohello"
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

如果省略第二个参数,默认使用空格补全长度。

'1'.padStart(10, '0') // "0000000001"
'x'.padEnd(4) // 'x   '
  1. 实例方法:trimStart(),trimEnd() ES2019 对字符串实例新增了trimStart()和trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

此页面案例参考于:ECMAScript 6 入门

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!