基本信息和字符串连接

JavaScript 中的字符串可以用模板文字( 反引号`hello` 中的单引号'hello',双引号 Hello 和(来自 ES2015,ES6 )括起来。

var hello  = "Hello";
var world  = 'world';
var helloW = `Hello World`;              // ES2015 / ES6

可以使用 String() 函数从其他类型创建字符串。

var intString = String(32); // "32"
var booleanString = String(true); // "true"
var nullString = String(null); // "null" 

或者,toString() 可用于将数字,布尔值或对象转换为字符串。

var intString = (5232).toString(); // "5232"
var booleanString = (false).toString(); // "false"
var objString = ({}).toString(); // "[object Object]"

也可以使用 String.fromCharCode 方法创建字符串。

String.fromCharCode(104,101,108,108,111) //"hello"

允许使用 new 关键字创建 String 对象,但不推荐使用,因为它的行为与对象不同,它与原始字符串不同。

var objectString = new String("Yes, I am a String object");
typeof objectString;//"object"
typeof objectString.valueOf();//"string"

连接字符串

字符串连接可以使用+连接运算符完成,也可以使用 String 对象原型上的内置 concat() 方法完成。

var foo = "Foo";
var bar = "Bar";
console.log(foo + bar);        // => "FooBar"
console.log(foo + " " + bar);  // => "Foo Bar"

foo.concat(bar)            // => "FooBar"
"a".concat("b", " ", "d")  // => "ab d"

字符串可以与非字符串变量连接,但会将非字符串变量类型转换为字符串。

var string = "string";
var number = 32;
var boolean = true;

console.log(string + number + boolean); // "string32true"

字符串模板

Version >= 6

可以使用模板文字( 反引号`hello` 创建字符串。

var greeting = `Hello`;

使用模板文字,你可以使用模板文字内的 ${variable} 进行字符串插值:

var place = `World`;
var greet = `Hello ${place}!`

console.log(greet); // "Hello World!"

你可以使用 String.raw 将反斜杠放在字符串中而不进行修改。

`a\\b` // =  a\b
String.raw`a\\b` // = a\\b