3.模板字符串

本文介绍了如何使用模板字符串在JavaScript中处理字符串,包括自定义函数的运用、动态变量的插入以及字符串的扩展方法。通过实例展示了如何利用`${}

模板字符串

以``包裹字符串,以${变量}形式串联变量

  1. 直接换行/ 嵌入变量
  2. 带标签的模板字符串:为了更好处理字符串变量
    (1) 自定义函数,写在模板字符串的前面
    (2) 通过${}将模板字符串的内容分成静态部分和动态,将静态部分以数组的方式存入到函数形参第一位,动态部分以形参的形式接着传入函数
  3. 字符串的扩展方法:startsWith()、endsWith()、includes()
      let { log } = console;
   	  // 换行:hello es2015, 和this is a 'string'
        const str = `hello es2015,       
        this is a 'string' `;
        log(str); 
	  // 变量拼接
        const name = 'tom';
        const msg = `hey,${name} -- ${1 + 2}`;
        log(msg); // hey,tom -- 3


		// 标签函数:参数 = 表达式分割后的静态内容,所有的变量值
		const name = 'tom';
		const gender = false;
		function myTagFunc(strs,name,gender) {
		    log(strs,name,gender); // ["hey,", "is a ", "."]  'tom' false
		}
		const result = myTagFunc`hey,${name}is a ${gender}.`;
		
		
		// 标签函数:字符串的扩展方法
		const msg = 'Error: foo is not defined.';
		log( msg.startsWith('Error'),
		        msg.endsWith('.'),
		        msg.includes('foo') 
		); //  true true true
<think>首先,用户要求用中文回答问题。问题是:“js 模板字符串使用”,意思是“JavaScript 模板字符串的使用”。 我需要提供关于 JavaScript 模板字符串的完整解释。模板字符串是 ES6 引入的特性,允许嵌入表达式和换行。 关键点包括: - 使用反引号(`)而不是单引号或双引号。 - 可以在字符串中嵌入变量或表达式,使用 `${expression}` 语法。 - 支持多行字符串。 - 可以包含标签模板(tagged templates),但基础使用不需要标签。 在回答中,我应该简洁明了地解释用法,并提供代码示例。 用户指定了回答格式:回答完问题后,必须以“§§相关问题§§”开头的一行,然后列出 3-5 个相关问题。问题必须基于我的回答和用户的问题。 最后,确保所有内容符合规则:输出在末尾,不换行分散。 结构回答: 1. 解释 JavaScript 模板字符串。 2. 提供代码示例。 3. 以“§§相关问题§§”开头,列出 3-5 个相关问题。 代码示例需要用代码块表示,如示例中所示。 示例格式: ``` 快速排序的基本思想是... ```python code... ``` §§相关问题§§ 1. ... 2. ... 3. ... ``` 所以,对于这个问题: - 解释模板字符串。 - 提供 JavaScript 代码示例。 - 然后“§§相关问题§§”和列表。 相关问题的想法: 基于“js 模板字符串使用”,我可以问: 1. 模板字符串与普通字符串的区别? 2. 如何在模板字符串中嵌入表达式? 3. 模板字符串支持多行文本吗? 4. 什么是标签模板? 5. 模板字符串在哪些场景中最有用? 确保有 3-5 个。 列出: 1. 模板字符串和普通字符串的主要区别是什么? 2. 如何在模板字符串中插入变量? 3. 模板字符串如何处理多行内容? 4. 什么是标签模板?请举例说明。 5. 在哪些情况下使用模板字符串更优? 现在,写回答: 先解释模板字符串: JavaScript 模板字符串(也称为模板字面量)是 ES6 引入的一种字符串语法,使用反引号(`)包裹。它允许嵌入表达式、多行文本,并支持标签模板。 代码示例: ```javascript let name = "Alice"; let age = 25; // 使用模板字符串嵌入变量 let greeting = `Hello, my name is ${name} and I am ${age} years old.`; // 多行字符串 let multiLine = `This is a string that spans multiple lines.`; console.log(greeting); console.log(multiLine); ``` 然后,添加“§§相关问题§§”和列表。 确保输出是纯文本,但代码块用 ``` 标记。 最终输出: - 解释 - 代码块 - §§相关问题§§ - 问题列表</think>### JavaScript 模板字符串的使用 JavaScript 模板字符串(也称模板字面量)是 ES6 引入的特性,使用反引号(`` ` ``)包裹字符串内容。它支持嵌入表达式(通过 `${expression}` 语法)、多行文本,以及标签模板功能。以下是核心用法: 1. **基本嵌入表达式**:在字符串中直接插入变量或表达式。 2. **多行字符串**:无需使用 `\n` 或拼接,可直接换行。 3. **标签模板**:通过函数处理模板字符串,实现自定义解析(如国际化、安全过滤)。 #### 代码示例 ```javascript // 嵌入变量和表达式 const name = "Alice"; const age = 30; const message = `Hello, ${name}! You are ${age} years old and next year you&#39;ll be ${age + 1}.`; console.log(message); // 输出: Hello, Alice! You are 30 years old and next year you&#39;ll be 31. // 多行字符串 const multiLineText = ` This is a multi-line string. It preserves line breaks and indentation. Useful for HTML templates or SQL queries. `; console.log(multiLineText); // 标签模板示例 (自定义处理) function highlight(strings, ...values) { return strings.reduce((result, str, i) => { return `${result}${str}<span class="highlight">${values[i] || ""}</span>`; }, ""); } const user = "Bob"; const score = 95; const htmlOutput = highlight`User: ${user}, Score: ${score}`; console.log(htmlOutput); // 输出: User: <span class="highlight">Bob</span>, Score: <span class="highlight">95</span> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值