查找子字符串
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: '
*/
### 标签模板 即`` 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); }
```