基本資訊和字串連線

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