优秀的编程知识分享平台

网站首页 > 技术文章 正文

JavaScript 字符串的扩展(ES6语法)

nanyue 2024-07-20 23:49:05 技术文章 10 ℃

之前定义字符串, 必须使用以下定界符

""或''

它们的缺点是在做连字符串的时候, 不方便:

var username = "小明";
var age = 18;
var str = "你好,我是" + username + "我今年" + age + "岁";
console.log(str)

ES6中用``来做定界符:

var str = `你好`;
console.log(str); //你好
console.log`str`; //[ 'str' ]
console.log(typeof str); //string
var username = "小明";
var age = 18;
var str = `你好,我是${username} 我今年${age}岁`; //你好, 我是小明 我今年12岁
console.log(str)

注意:只有``中能够用${}嵌套变量

动态求值:

var str = `今年是${2022 + 2}`;
console.log(str); //今年是2024

${}能写简单运算、函数调用、变量、Math函数、数组表达式方法(map、reduce、filter、join)、三元运算符(即有返回值的都可以, IIFE也行)

function sum(a,b){
return a + b;
}
var str1 = `哈${Math.random()}哈`;
var str2 = `哈${sum(3,4)}哈`;
var str3 = `哈${5 > 10 ? true : false}哈`;
console.log(str1)
console.log(str2)
console.log(str3)

字符串方法

以前JavaScript只有indexOf方法, 可以用来确定一个字符串是否包含在另一个字符串中。

ES6又提供了三种新方法:

includes() 返回Boolean值, 检查字符串或数组中是否存在某项

startsWith() 返回Boolean值, 检查参数是否在原字符串或数组中的开头

endsWith() 返回Boolean值, 检查参数是否在原字符串或数组中的结尾

var url = "http://www.aiqianduan.com/";
console.log(url.includes("www")); //true
console.log(url.startsWith("http")); //true
console.log(url.endsWith("com/")); //true

这三个方法都支持第二个参数, 表示开始搜索的位置:

let s = 'Hello world!';
console.log(s.includes('Hello', 6)) //false
console.log(s.startsWith('world', 6)) //true
console.log(s.endsWith('Hello', 5)) //true

上面代码表示, 使用第二个参数n时, endsWith的行为与其他两个方法有所不同。它针对前n个字符, 而其他两个方法针对从第n个位置直到字符串结束。

repeat()返回一个新的字符串能够将原字符串重复n次

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

Tags:

最近发表
标签列表