ES6模板字符串

博客分类: 笔记 阅读次数: comments

ES6模板字符串

ES6

ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准,在2015年6月正式发布。

模板字符串

  1. 定义比较长,复杂字符串 如html代码

    注意:模板字符串可以表示多行字符串,所有的空格和缩进都会被保留在输出之中。你不想要这个换行,可以使用trim方法消除它

  2. 模板字符串中写 ` 需要转义

  3. 模板字符串中插入变量 ${变量名}

  4. 模板字符串中插入函数的调用 ${函数名()}

    注意: 模板字符串可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板” 比如 alert(123) 使用标签模板 可以写成 alert123

    标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的 模板字符串 就是它的参数.

例:

//模板字符串
	let html = `
	<div>\`
		<div>
			<p>Lorem ipsum dolor sit amet.</p>
			<a href="#">${username}</a>
			<p>${fn()}></p>
		</div>
	</div>
	`;

输出结果:

重复输出方法:

repeat();

	let str = "hellow";

	console.log(str);
	console.log(str.repeat(3));

	console.log('a'.repeat(10))

输出:

字符串补全长度的方法:

padStart() ;

padEnd();

//字符串补全长度的方法
    let str = "hellow";

    console.log(str);
    console.log(str.padStart(10))
    console.log(str.padStart(10, "*"))
    console.log(str.padStart(10, "abc"))

    console.log(str.padEnd(12));
    console.log(str.padEnd(12, "*"));

输出:

字符串验证:

includes();是否包含

startsWith();是否以什么开头

endsWith();是否以什么结尾

	//字符串包含验证
	let str = "hellow world";

	console.log(str.includes('a'));
	console.log(str.includes('ow'));

	console.log(str.startsWith('hellow'));
	console.log(str.startsWith('h'));

	console.log(str.endsWith('world'))
	console.log(str.endsWith('d'))

输出:

作业:

模拟一个模板字符串的实现:

    let address = '北京海淀区'
    let name = 'lala'
    let str = '${name}在${address}上班...'
    // 模拟一个方法 myTemplate(str) 最终输出 'lala在北京海淀区上班...'
    function myTemplate(str) {
        
    }
    console.log(myTemplate(str)) // lala在北京海淀区上班...

答案:

 function myTemplate(str) {
            str = str.replace(/\$\{([a-z]+)\}/g, function () {
                let tmp = 'var aa=' + [arguments[1]];
                console.log(tmp);
                eval(tmp);
                return aa;
            })
            return str;
        }