ES6对字符串的扩展

参考阮一峰ES6

查找子字符串

includes , startWith

这两个方法都支持第二个参数n,表示从当前字符串的第n个位置开始搜寻子字符串;默认值为0

  • includes():返回布尔值,表示是否找到了参数字符串
  • startWith():返回布尔值,表示参数字符串是否在当前字符串的头部

    endWith

    endsWith(str,n):返回布尔值,表示字符串str是否在当前字符串的尾部,n表示查找范围是当前字符串的前n个字符n默认是当前字符串的length

    repeat

    repeat(n)方法,将当前字符串重复n次,返回一个新字符串
  • n 如果是字符串,会被自动转成数字
  • n 如果是小数,会被自动取整
  • n 不能是负数(-1~0之间的小数除外)Infinity,否则会报错
  • n 若是NaN则等同于0

    padStart , padEnd

    padStart(len,str),padEnd(len,str),这两个方法用来补全字符串,len指定补全后字符串的长度;str是用来补全的字符串,默认是空格
  • 如果原字符串的长度大于或等len,则返回原字符串
  • 如果原字符串与str长度之和大于len,则截去str多余的部分

    模板字符串

    模板字符串,用反引号``来标识

当作普通字符串使用

console.log(typeof `haha`); // string

用来定义多行字符串

输出时空格和缩进都会保留

let w = `haha
  hehe
      heiehi`;
console.log(w);
/* 
haha
  hehe
      heiehi */

反引号要转义

在模板字符串中使用反引号要用反斜杠\来转义,如:`\`hello\` World!`

嵌入变量

变量名要写在${}中,{}中可放入任意js表达式,可进行运算,可引用对象属性,可调用函数

  • {}中的变量必须已声明,否则将报错
  • {}中的值若不是字符串,将按照一般规则转化为字符串

    let x = 1;
    let y = 2;
    let obj = { a: 3, b: 4 };
    let arr = [1, 'hi'];
    let fn = function () {
      console.log('hello');
    }
    console.log(`${x}` + `${y}`);       // 12
    console.log(`${obj.a + 1 + obj.b}`);// 8
    console.log(`${arr}`);  // 1,hi
    `${fn()}` // hello

    嵌套

    ``javascript const tmpl = addrs =>


    ${addrs.map(addr => <tr><td>${addr.first}</td></tr> <tr><td>${addr.last}</td></tr>).join('')}

    `;
    const data = [
    { first: '

Bond Lars

*/
### 标签模板 即`` fn`${}` ``的形式,`fn`是一个函数,`fn`被调用来处理后面的模板字符串 - 函数`fn`的第一个参数是一个数组,包含模板字符串中没有被变量替换的部分,其他参数是模板字符串中各个被变量替换后的值javascript
let a = 5;
let b = 'hello';
fnze; // [["ze"]]
fnone${a}two${b}${'three'}; // [["one", "two", "", ""], 5, "hello", "three"]
function fn(arr) { console.log(arguments); }
```

猜你喜欢

转载自www.cnblogs.com/ak-b/p/8995431.html