String ng JavaScript

JavaScript strings are used to store and manipulate text.

String ng JavaScript

JavaScript strings are zero or more characters within quotes.

实例

var x = "Bill Gates";

亲自试一试

You can use single quotes or double quotes:

实例

var carname = "Porsche 911";
var carname = 'Porsche 911';

亲自试一试

You can use quotes in strings, as long as they do not match the quotes surrounding the string:

实例

var answer = "It's good to see you again!";
var answer = "He is called 'Bill'";
var answer = 'He is called "Bill"';

亲自试一试

String length

Built-in property length Can return theLength:

实例

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

亲自试一试

Special characters

Since strings must be enclosed in quotes, JavaScript will misinterpret this string:

var y = "China is the hometown of porcelain, so china is with"China (China)"having the same name."

The string will be split into "China is the hometown of porcelain, so china is with".

The solution to avoid this problem is to use \ Escape character

Escape characters convert special characters to string characters:

Code Result Description
\' ' Single quotes
\" " Double quote
\\ \ Backslash

实例

Sequence \" Iinsert ang double quote sa loob ng string:

实例

var x = "China ay ang tahanan ng chinaware, kaya ang china ay magkapareho sa \"China (China)\".";

亲自试一试

Sequence \' Iinsert ang single quote sa loob ng string:

实例

var x = 'It\'s good to see you again';

亲自试一试

Sequence \\ Iinsert ang backslash sa loob ng string:

实例

var x = "Ang character \\ ay tinatawag na backslash.";

亲自试一试

Escape character (\)ay maaari ring gamitin para sa pagpalit ng iba pang espesyal na character sa string.

Ang ibang anim na valid na sequence ng escape sa JavaScript:

Code Result
\b Backspace key
\f Form feed
\n New line
\r Carriage return
\t Horizontal tab
\v Vertical tab

Ang anim na character na maaaring iescape sa simula ay dinisenyo para sa kontrol ng typewriter, teletype, at facsimile machine. Wala silang kahulugan sa HTML.

Pagpalit ng mahabang linya ng code

Para sa pinakamahusay na pagbasa, ayon sa mga programmer, ay ibabawasan ang haba ng bawat linya ng code sa 80 na character.

Kung ang isang JavaScript statement ay hindi nararapat sa isang buong linya, ang pinakamahusay na lugar para sa pagpalit ng linya ay sa likod ng isang operator:

实例

document.getElementById("demo").innerHTML =
"Hello Kitty.";

亲自试一试

Maaari ka ringSa loob ng stringMagpalit ng linya, sa pamamagitan ng isang backslash:

实例

document.getElementById("demo").innerHTML = "Hello \
Kitty!";

亲自试一试

\ Ang paraan ay hindi kasama sa ECMAScript (JavaScript) standard.

Ang ilang mga browser ay hindi din pinapayagan \ Hindi maaring ilagay ang puwang sa likod ng character.

Ang pinakamalaking kaligtasan para sa pagpalit ng linya ng mahabang string (ngunit medyo mabagal) ay gamit ang pagsasama ng string:

实例

document.getElementById("demo").innerHTML = "Hello" + 
"Kitty!";

亲自试一试

Hindi mo pwedeng gamitin ang backslash upang palitan ang linya ng code:

实例

document.getElementById("demo").innerHTML = \ 
"Hello Kitty!";

亲自试一试

Ang string ay maaaring maging bagay

Karaniwan, ang string ng JavaScript ay orihinal na halaga, na ginawa sa pamamagitan ng literal:

var firstName = "Bill"

Ngunit ang string ay maaari ring maipakilala gamit ang pangalawang salita new Inilalarawan bilang:

var firstName = new String("Bill")

实例

var x = "Bill";
var y = new String("Bill");
// typeof x ay magiging string
// typeof y ay magiging object

亲自试一试

请不要把字符串创建为对象。它会拖慢执行速度。

new 关键字使代码复杂化。也可能产生一些意想不到的结果:

当使用 == 相等运算符时,相等字符串是相等的:

实例

var x = "Bill";             
var y = new String("Bill");
// (x == y) 为 true,因为 x 和 y 的值相等

亲自试一试

当使用 === 运算符时,相等字符串是不相等的,因为 === 运算符需要类型和值同时相等。

实例

var x = "Bill";             
var y = new String("Bill");
// (x === y) 为 false,因为 x 和 y 的类型不同(字符串与对象)

亲自试一试

甚至更糟。对象无法比较:

实例

var x = new String("Bill");             
var y = new String("Bill");
// (x == y) 为 false,因为 x 和 y 是不同的对象

亲自试一试

实例

var x = new String("Bill");             
var y = new String("Bill");
// (x === y) 为 false,因为 x 和 y 是不同的对象

亲自试一试

请注意 (x==y) 与 (x===y) 的区别。

JavaScript 对象无法进行对比,比较两个 JavaScript 将始终返回 false