JavaScript . .
UTF-16, .
.
, :
let single = '-';
let double = "-";
let backticks = `-`;
. - , ${}:
function sum(a, b) {
return a + b;
}
alert(`1 + 2 = ${sum(1, 2)}.`); // 1 + 2 = 3.
, :
let guestList = `:
*
*
*
`;
alert(guestList); //
, ? .
, :
let guestList = ": // : Unexpected token ILLEGAL
* ";
, . .
. : func`string`. func , . , , MDN: Template literals.
, \n, :
let guestList = ":\n * \n * \n * ";
alert(guestList); // ,
, , -:
let str1 = "\n"; // " "
//
let str2 = `
`;
alert(str1 == str2); // true
, .
\n |
|
\r |
Windows \r\n , , \n. , Windows \n |
\',\",\` |
|
\\ |
|
\t |
|
\b, \f, \v |
Backspace, Form Feed, Vertical Tab , |
\. .
, \ , :
alert( ` : \\` ); // : \
\', \", \` , .
:
alert( '\' !' ); // ' !
, \', .
, , . :
alert( `' !` ); // ' !
, Unicode \u, Unicode.
length :
alert( `\n`.length ); // 4
, \n , 4.
length , : str.length() str.length. .
, str.length , , . .length(), .length.
, pos, : [pos], str.at(pos). :
let str = ``;
//
alert( str[0] ); //
alert( str.charAt(0) ); //
//
alert( str[str.length - 1] ); //
alert( str.at(-1) ); //
, .at(pos) , . pos , .
, .at(-1) , .at(-2) , .
undefined , :
let str = ``;
alert( str[-2] ); // undefined
alert( str.at(-2) ); //
, for..of:
for (let char of "") {
alert(char); // ,,,,, (char "", "", "" )
}
JavaScript . .
:
let str = '';
str[0] = ''; //
alert( str[0] ); // ,
, .
:
let str = '';
str = '' + str[1]; //
alert( str ); //
.
alert( ''.toUpperCase() ); //
alert( ''.toLowerCase() ); //
:
alert( 'Interface'[0].toLowerCase() ); // ''
.
str.indexOf
substr str, pos, , , , -1.
:
let str = ' ';
alert( str.indexOf('') ); // 0, ''
alert( str.indexOf('') ); // -1, ,
alert( str.indexOf("") ); // 1, "" 1 (.. )
pos .
, "" 1. , 2:
let str = ' ';
alert( str.indexOf('', 2) ) // 9
, indexOf . :
let str = ', , , ';
let target = ''; //
let pos = 0;
while (true) {
let foundPos = str.indexOf(target, pos);
if (foundPos == -1) break;
alert( ` : ${foundPos}` );
pos = foundPos + 1; //
}
:
let str = ", , , ";
let target = "";
let pos = -1;
while ((pos = str.indexOf(target, pos + 1)) != -1) {
alert( pos );
}
str.lastIndexOf(substr, position) indexOf if. if :
let str = " ";
if (str.indexOf("")) {
alert(" "); //
}
alert , str.indexOf("") 0 ( , ). , if , 0 false.
-1, :
let str = " ";
if (str.indexOf("") != -1) {
alert(" "); // !
}
includes, startsWith, endsWith
str.includes(substr, pos) true/false substr str.
, , :
alert( " ".includes("") ); // true
alert( "".includes("") ); // false
pos :
alert( "".includes("") ); // true
alert( "".includes("", 3) ); // false, 3- , ""
, str.startsWith str.endsWith , .
alert( "".startsWith("") ); // true, "" ""
alert( "".endsWith("") ); // true, "" ""
JavaScript 3 : substring, substr slice.
str.slice(start [, end])-
start( )end.:
let str = "stringify"; alert( str.slice(0, 5) ); // 'strin', 0 5 (5 ) alert( str.slice(0, 1) ); // 's', 0 1, 1 , 0,
slice:let str = "stringify"; alert( str.slice(2) ); // 'ringify', 2start/end. , :let str = "stringify"; // 4- , 1- alert( str.slice(-4, -1) ); // 'gif' str.substring(start [, end])-
startend(end).slice,substringstart,end(startend).:
let str = "stringify"; // substring alert( str.substring(2, 6) ); // "ring" alert( str.substring(6, 2) ); // "ring" // ... slice: alert( str.slice(2, 6) ); // "ring" ( ) alert( str.slice(6, 2) ); // "" ( )( slice) ,
0. str.substr(start [, length])-
start,length.,
length:let str = "stringify"; alert( str.substr(2, 4) ); // 'ring', 2 4, :
let str = "stringify"; alert( str.substr(-4, 2) ); // 'gi', 4 2Annex B . , Javascript, . .
:
slice(start, end) |
start end ( end) |
|
substring(start, end) |
start end ( end) |
0 |
substr(start, length) |
length start |
start |
. substr : JavaScript, Annex B, , . , . .
slice , .
, slice .
, .
-
:
alert( 'a' > 'Z' ); // true -
:
alert( 'sterreich' > 'Zealand' ); // true, . ,
Zealandsterreich.
, , , JavaScript UTF-16. , .
, .
str.codePointAt(pos)-
,
pos:// alert( "z".codePointAt(0) ); // 122 alert( "Z".codePointAt(0) ); // 90 alert( "z".codePointAt(0) ); // 122 alert( "z".codePointAt(0).toString(16) ); // 7a ( ) String.fromCodePoint(code)-
codealert( String.fromCodePoint(90) ); // Z alert( String.fromCodePoint(0x5a) ); // Z ( )
65..220 ( ), :
let str = '';
for (let i = 65; i <= 220; i++) {
str += String.fromCodePoint(i);
}
alert( str );
// alert :
// ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
//
? , , .
, a > Z.
. , . a (97) Z (90).
- , .
- , -
, . -az.
, , .
, .
, ECMA-402.
, .
str.localeCompare(str2) , , str , str2 :
- ,
str,str2. - ,
str,str2. -
0, .
:
alert( 'sterreich'.localeCompare('Zealand') ); // -1
- 3 .
${}. - ,
\n. - , :
[]at. - , :
slicesubstring. - / , :
toLowerCase/toUpperCase. - , :
indexOf,includes/startsWith/endsWith. - ,
localeCompare, .
:
, , Unicode, , . Unicode , .
<code>,<pre>, 10 (plnkr, jsbin, codepen)