📜  ES6-新的字符串方法

📅  最后修改于: 2020-10-25 10:37:55             🧑  作者: Mango


以下是方法及其说明的列表。

Sr.No Method & Description
1 String.prototype.startsWith(searchString, position = 0)

Returns true if the receiver starts with searchString; the position lets you specify where the string to be checked starts.

2 String.prototype.endsWith(searchString, endPosition = searchString.length)

Returns true if the receiver starts with searchString; the position lets you specify where the string to be checked starts.

3 String.prototype.includes(searchString, position = 0)

Returns true if the receiver contains searchString; position lets you specify where the string to be searched starts.

4 String.prototype.repeat(count)

Returns the receiver, concatenated count times.

模板字面量

模板字面量是允许嵌入表达式的字符串字面量。模板字符串使用反引号(“)而不是单引号或双引号。模板字符串因此可以写成-

var greeting = `Hello World!`; 

字符串插值和模板字面量

如图所示,模板字符串可以使用占位符使用$ {}语法进行字符串替换。

例子1

var name = "Brendan"; 
console.log('Hello, ${name}!');

成功执行上述代码后,将显示以下输出。

Hello, Brendan!

示例2:模板字面量和表达式

var a = 10; 
var b = 10; 
console.log(`The sum of ${a} and ${b} is  ${a+b} `);

成功执行上述代码后,将显示以下输出。

The sum of 10 and 10 is 20 

示例3:模板字面量和函数表达式

function fn() { return "Hello World"; } 
console.log(`Message: ${fn()} !!`);

成功执行上述代码后,将显示以下输出。

Message: Hello World !!

多行字符串和模板字面量

模板字符串可以包含多行。

var multiLine = `
   This is 
   a string 
   with multiple 
   lines`; 
console.log(multiLine)

成功执行上述代码后,将显示以下输出。

This is 
a string 
with multiple 
line

String.raw()

ES6包括用于原始字符串的标记函数String.raw,其中反斜杠没有特殊含义。 String.raw使我们能够像在正则表达式字面量一样编写反斜杠。考虑以下示例。

var text =`Hello \n World` 
console.log(text)  

var raw_text = String.raw`Hello \n World ` 
console.log(raw_text)

成功执行上述代码后,将显示以下输出。

Hello 
World 
Hello \n World

标记模板

标签是一种可以解释和处理模板字面量的函数。标签出现在模板字面量的前面。语法如下所示。

句法

let output_fromTag = tagFunction `Template literal with ${variable1} , ${variable2}`

标签函数的实现语法如下:

function tagFunction(literals,...variable_values){
   //process
   return "some result"
}

以下示例定义了标记函数myTagFn() 。它显示传递给它的参数。显示后,将完成返回给呼叫者。


以上代码的输出将如下所示-

//literal
literal values are
Hello this is
from
//values
variable values are
TutorialsPoint
Mumbai
Done

下面的标记函数采用模板字面量并将其转换为大写,如下所示-


上面代码的输出将如下所述-

HELLO THIS IS TUTORIALSPOINT FROM MUMBAI

String.fromCodePoint()

静态字符串。 fromCodePoint()方法返回一个字符串,该字符串是使用指定的unicode代码点序列创建的。如果传递了无效的代码点,该函数将引发RangeError。

console.log(String.fromCodePoint(42))        
console.log(String.fromCodePoint(65, 90))

成功执行上述代码后,将显示以下输出。

* 
AZ