模板字面量(模板字符串)

模板字面量(模板字符串)模板字面量是创建字符串的新字面量语法,使用反引号(`)来分界。有三种特性:插值,多行和标记。插值使用占位符${expression}将动态值放入创建的字符串中。letname=”strick”,age=29,str;str=`nameis”${name}”.ageis${age}.`;console.log(str)//nameis”strick”.ageis29.多行字符串原生支持创建多行字符串,不需要再用加号,反斜线和换行符。能识别空白符。.

大家好,欢迎来到IT知识分享网。

模板字面量是创建字符串的新字面量语法,使用反引号(`)来分界。有三种特性: 插值,多行和标记。

插值

使用占位符${expression} 将动态值放入创建的字符串中。

let name = "strick",
age = 29,str;
str = `name is "${name}".age is ${age}.`;
console.log(str)
//name is "strick".age is 29.

多行字符串

原生支持创建多行字符串,不需要再用加号,反斜线和换行符。能识别空白符。

let multi = `first line
second line
third line`;
console.log(multi)
//输出
first line
second line
third line

标记

一种特殊方式的函数调用,函数名后面直接跟模板字面量 , 它一 般会包含两个参数,第一个是由没有被替换的部分组成的数组,第二个是剩余参数,包含了所有占位符中的计算结果。

//示例: 
function foo(strings,...values){
    console.log(strings)
    console.log(values)
}
const desc = 'awesome'
foo`Everything is ${desc}!]`
//["Everything is ","!"]
//[“awesome”]
//应用
//过滤HTML字符串,防止用户输入恶意内容
function filter(strings,...values){
    return strings.reduce((s,v,idx)=>{
        if(idx>0){
            const prev = values[idx-1]
            .replace(/</g,"&lt;")
            .replace(/>/g,"&gt;")
            s+=prev
        }
        return s+v
    })
}

const badCode = `<script>alert("abc")</script>`
const message = filter`<p>${badCode}
has been transformed safely~`
console.log(message)

输出 :

模板字面量(模板字符串)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10596.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信