当前位置:网站首页>字符串的扩展
字符串的扩展
2022-07-31 05:10:00 【F班的小夏同学】
字符串的遍历器接口
ES6为字符串添加了遍历器接口,使得字符串可以被for…of遍历循环。
for(let codePoint of 'foo){
console.log(codePoint)
}
// "f"
// "o"
// "o"
模板字符串
模板字符串是增强版的字符串,用反引号(`)标识。它可以当做普通字符串来使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
//普通字符串
`In Javascript '\n' is a line-feed.`
//多行字符串
`In Javascript this is not legal`
console.log(`string text line 1 string text linge 2`);
//字符串中嵌入变量
let name="Bob",time="today";
`Hello ${
name},how are you ${
time}?`
上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
let greeting = `\`Yo\` World!`;
如果用模板字符串表示多行字符串,所有的空行和缩进都会被保留在输出之中。
$('#list').html(` <ul> <li>first</li> <li>second</li> </ul> `);
上面的代码中,所有模板字符串的空格和换行,都是被保留的,比如 <ul> 标签前面会有一个换行。如果你不想要这个换行,可以使用trim方法消除它。
$('#list').html(` <ul> <li>first</li> <li>second</li> </ul> `.trim());
模板字符串中嵌入变量,需要将变量名写在${}之中。
function authorize(user, action) {
if (!user.hasPrivilege(action)) {
throw new Error(
// 传统写法为
// 'User '
// + user.name
// + ' is not authorized to do '
// + action
// + '.'
`User ${
user.name} is not authorized to do ${
action}.`);
}
}
大括号内部可以放入任意的javascript表达式,可以进行运算,以及引用对象属性。
let x = 1;
let y = 2;
`${
x} + ${
y} = ${
x + y}`
// "1 + 2 = 3"
`${
x} + ${
y * 2} = ${
x + y * 2}`
// "1 + 4 = 5"
let obj = {
x: 1, y: 2};
`${
obj.x + obj.y}`
// "3"
模板字符串之中还能调用函数。
function fn() {
return "Hello World";
}
`foo ${
fn()} bar`
// foo Hello World bar
如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。
如果模板字符串中的变量没有声明,将报错。
// 变量place没有声明
let msg = `Hello, ${
place}`;
// 报错
由于模板字符串的大括号内部,就是执行javascript代码,因此如果大括号内部是一个字符串,将会原样输出。
`Hello ${
'World'}`
// "Hello World"
如果需要引用模板字符串本身,在需要时执行,可以写成函数。
let func = (name) => `Hello ${
name}!`;
func('Jack') // "Hello Jack!"
上面代码中,模板字符串写成了一个函数的返回值。执行这个函数,就相当于执行这个模板字符串了。
边栏推荐
猜你喜欢

分布式事务处理方案大 PK!

Anaconda配置环境指令

MYSQL下载及安装完整教程

剑指offer专项突击版 ---第 5 天

剑指offer专项突击版 ---- 第 6 天

The interviewer asked me how to divide the database and the table?Fortunately, I summed up a set of eight-part essays

Object Detection Study Notes

剑指offer专项突击版 --- 第 3 天

Why use Flink and how to get started with Flink?

MySQL(更新中)
随机推荐
Three handshakes and four waves
账号或密码多次输入错误,进行账号封禁
Goodbye to the cumbersome Excel, mastering data analysis and processing technology depends on it
数据库上机实验6 数据库完整性
可点击也可直接复制指定内容js
torch.normal函数用法
C语言教程(三)-if和循环
实验7 UDP与TCP对比
【数据库学习】Redis 解析器&&单线程&&模型
matlab simulink欠驱动水面船舶航迹自抗扰控制研究
Anaconda配置环境指令
matlab abel变换图片处理
三次握手与四次挥手
基于flask的三方登陆的流程
Swordsman Offer Special Assault Edition ---- Day 6
Mysql——字符串函数
剑指offer基础版--- 第23天
Why use Flink and how to get started with Flink?
uni-app进阶之认证【day12】
MYSQL下载及安装完整教程