ì´ ì¥ììë JavaScriptìì 문ìì´ê³¼ í ì¤í¸ë¡ ìì íë ë°©ë²ì ìê°í©ëë¤.
문ìì´JavaScriptì 문ìì´ ì íì ì문ì ë°ì´í°ë¥¼ ëíë´ëë° ì¬ì©ë©ëë¤. ì´ë 16ë¹í¸ ë¶í¸ ìë ì ì ê°(UTF-16 code units)ì "ìì" ì§í©ì ëë¤. Stringì ê° ìì(문ì)ë Stringìì íëì ìì¹ë¥¼ ì°¨ì§í©ëë¤. 첫 ë²ì§¸ ììë ì¸ë±ì¤ 0 ë¤ìì ì¸ë±ì¤ 1 ë±ë±... 문ìì´ì 길ì´ë ììì ìì ê°ìµëë¤. 문ìì´ ë¦¬í°ë´ ëë 문ìì´ ê°ì²´ë¥¼ ì¬ì©íì¬ ë¬¸ìì´ì ë§ë¤ ì ììµëë¤.
주ì : ì´íì´ì§ë¥¼ ìì íë¤ë©´ MDN bug 857438ì´ í´ê²°ë ë ê¹ì§ U+FFFFì´ìì 문ì를 í¬í¨íì§ ë§ì¸ì. ( https://bugzilla.mozilla.org/show_bug.cgi?id=857438 ).
문ìì´ ë¦¬í°ë´ììë°ì´íë í°ë°ì´í를 ì¬ì©íì¬ ê°ë¨í 문ìì´ì ë§ë¤ ì ììµëë¤:
ë³´ë¤ ë§ì 문ìì´ì ì´ì¤ì¼ì´í ìíì¤ë¥¼ ì¬ì©íì¬ ë§ë¤ ì ììµëë¤
16ì§ì ì´ì¤ì¼ì´í ìíì¤\x ë¤ì ìë 16ì§ìë¡ í´ì(interpreted)ë©ëë¤.
ì ëì½ë ì´ì¤ì¼ì´í ìíì¤ì ëì½ë ì´ì¤ì¼ì´í ìíì¤ë \u ë¤ìì ì ì´ë ë¤ ê°ì 16ì§ì ì«ì(digit)를 íìë¡ í©ëë¤.
ì ëì½ë ì½ë í¬ì¸í¸ ì´ì¤ì¼ì´íECMAScript 6ì ìë¡ì´ 기ë¥. ì ë ì½ë í¬ì¸í¸ ì´ì¤ì¼ì´í를 ì¬ì©íë©´ 16 ì§ì를 ì¬ì©íì¬ ëª¨ë 문ì를 ì´ì¤ì¼ì´í ì²ë¦¬ í ì ìì¼ë¯ë¡ ìµë 0x10FFFF
ì ì ë ì½ë ì½ë í¬ì¸í¸ë¥¼ ì¬ì©í ì ììµëë¤. ê°ë¨í ì ë ì½ë ì´ì¤ì¼ì´í를 ì¬ì©íë©´ ëì¼í 결과를 ì»ê¸° ìí´ì ìë¡ ê²ì´í¸ë¥¼ ë³ëë¡ ìì±í´ì¼íë ê²½ì°ê° ììµëë¤.
String.fromCodePoint()
ë String.prototype.codePointAt()
를 ì°¸ê³ íì¸ì.
"\u{2F804}";
// the same with simple Unicode escapes
"\uD87E\uDC04";
문ìì´ ê°ì²´
문ìì´
ê°ì²´ë 문ìì´ ê¸°ë³¸ ë°ì´í° íìì ëí¼ì
ëë¤.
var s = new String("foo"); // Creates a String object
console.log(s); // Displays: { '0': 'f', '1': 'o', '2': 'o'}
typeof s; // Returns 'object'
ì¬ë¬ë¶ì 문ìì´ ë¦¬í°ë´ ê°ì 문ìì´ ê°ì²´ì ë°©ë² ì¤ íë를 í¸ì¶ í ì ììµëë¤.âJavaScriptê° ìëì¼ë¡ 문ìì´ ë¦¬í°ë´ì ìì 문ìì´ ê°ì²´ë¡ ë³ííê³ , ë©ìë를 í¸ì¶íê³ , ê·¸ë¦¬ê³ ëì ìì 문ìì´ ê°ì²´ë¥¼ ìì í©ëë¤. ëí, String.length
ìì±ì 문ìì´ ë¦¬í°ë´ê³¼ í¨ê» ì¬ì©í ì ììµëë¤.
í¹ë³í String
ê°ì²´ë¥¼ ì¬ì©í íìê° ìì§ ìë í, String
ê°ì²´ë ì§ê´ì ë°íë íëì í ì ì기 ë문ì ì¬ë¬ë¶ì string 리í°ë´ì ì¬ì©í´ì¼í©ëë¤. ì를ë¤ì´:
var s1 = "2 + 2"; // Creates a string literal value
var s2 = new String("2 + 2"); // Creates a String object
eval(s1); // Returns the number 4
eval(s2); // Returns the string "2 + 2"
문ìì´ ê°ì²´ë 문ìì´ì 문ì ì를 ëíë´ë íëì ìì±, 길ì´ë¥¼ ê°ìµëë¤. ì를 ë¤ì´, "Hello, World!"ê° 13ì ì´ë¯ë¡ ë¤ì ì½ëë x를 ê° 13ì¼ë¡ í ë¹í©ëë¤. String
ê°ì²´ë 문ìì´ììë UTF-16 ì½ë ë¨ìì ì를 ëíë´ë 길ì´ê° íëì ìì±ì ê°ì§ëë¤. ì를 ë¤ì´, ë¤ì ì½ëììë "Hello, World!"ê° UTF-16 ì½ë ë¨ìë¡ ííëë 13ê°ì 문ì를 ê°ì§ê³ ì기 ë문ì x ê°ì´ 13ì´ ë©ëë¤. ë°°ì´ ë¸ëí· ì¤íì¼ì ì¬ì©íì¬ ê° ì½ë ë¨ìì ì¡ì¸ì¤ í ì ììµëë¤. 문ìì´ì ë³ê²½ ë¶ê°ë¥í ë°°ì´ê³¼ ê°ì ê°ì²´ì´ê¸° ë문ì ê°ë³ 문ì를 ë³ê²½í ì ììµëë¤.
var mystring = "Hello, World!";
var x = mystring.length;
mystring[0] = "L"; // This has no effect, because strings are immutable
mystring[0]; // This returns "H"
ì ë ì½ë ì¤ì¹¼ë¼ ê°ì´ U + FFFF (í¬ê· í ì¤êµì´ / ì¼ë³¸ì´ / íêµì´ / ë² í¸ë¨ì´ 문ì ë° ì¼ë¶ ì´ëª¨í°ì½)ë³´ë¤ í° ë¬¸ìë ê°ê° ìë¡ ë¤ë¥¸ ë ê°ì ì½ë ë¨ìë¡ UTF-16ì ì ì¥ë©ëë¤. ì를 ë¤ì´, ë¨ì¼ 문ì U + 1F600 "Emoji grinning face"를 í¬í¨íë 문ìì´ì 길ì´ê° 2ì
ëë¤. ëê´í¸ë¥¼ ì¬ì©íì¬ ì´ë¬í 문ìì´ì ê°ë³ ì½ë ë¨ìì ì¡ì¸ì¤íë©´ ì¼ì¹íì§ ìë ë리 ì½ë ë¨ìê°ìë 문ìì´ì´ ë§ë¤ì´ì§ë ë±ì ë°ëì§íì§ ìì ê²°ê³¼ê° ë°ìí ì ììµëë¤. ì ë ì½ë íì¤ ìë° MDN ë²ê·¸ 857438ì´ ìì ë íì ìì ê° ì´ íì´ì§ì ì¶ê°ëì´ì¼í©ëë¤. String.fromCodePoint ()
ëë String.prototype.codePointAt ()
ë 참조íììì¤.
String
ê°ì²´ë ë¤ìí ë©ìëê° ììµëë¤: 문ìì´ ìì²´ì ë³ê²½ë 결과를 ë°ííë substring
ê³¼ toUpperCase
ê° ê·¸ê²!
ë¤ì íë 문ìì´
ê°ì²´ì ë©ìë를 ìì½í ê²ì
ëë¤.
charAt
, charCodeAt
, codePointAt
문ìì´ìì ì§ì ë ìì¹ì ìë 문ìë 문ì ì½ë를 ë°íí©ëë¤.
indexOf
, lastIndexOf
문ìì´ìì ì§ì ë ë¶ë¶ 문ìì´ì ìì¹ë ì§ì ë ë¶ë¶ 문ìì´ì ë§ì§ë§ ìì¹ë¥¼ ê°ê° ë°íí©ëë¤.
startsWith
, endsWith
, includes
문ìì´ ììíê³ , ëëê³ , ì§ì ë 문ìì´ì í¬í¨íëì§ì ì¬ë¶ë¥¼ ë°íí©ëë¤.
concat
ë 문ìì´ì í ì¤í¸ë¥¼ ê²°í©íê³ ìë¡ì´ 문ìì´ì ë°íí©ëë¤.
fromCharCode
, fromCodePoint
ì ëì½ë ê°ì ì§ì ë ìíì¤ë¡ë¶í° 문ìì´ì 구ì¶í©ëë¤. 문ìì´ ì¸ì¤í´ì¤ê° ìë 문ìì´ í´ëì¤ì ë©ìëì ëë¤.
split
ë¶ë¶ 문ìì´ë¡ 문ìì´ì ë¶ë¦¬íì¬ ë¬¸ìì´ ë°°ì´ë¡ 문ìì´ ê°ì²´ë¥¼ ë¶í í©ëë¤.
slice
문ìì´ì í ë¶ë¶ì ì¶ì¶íê³ ì 문ìì´ì ë°íí©ëë¤.
substring
, substr
ì´ë ìì ë° ì¢ ë£ ì¸ë±ì¤ ëë ìì ì¸ë±ì¤ ë° ê¸¸ì´ë¥¼ ì§ì íì¬, 문ìì´ì ì§ì ë ì¼ë¶ë¥¼ ë°íí©ëë¤.
match
, replace
, search
ì ê· ííìì¼ë¡ ìì í©ëë¤.
toLowerCase
,
toUpperCase
.모ë ì문ì ëë ë문ììì ê°ê° 문ìì´ì ë°íí©ëë¤.
normalize
í¸ì¶ 문ìì´ ê°ì ì ë ì½ë íì¤í ììì ë°íí©ëë¤. repeat
주ì´ì§ í를 ë°ë³µíë ê°ì²´ ììë¡ ì´ë£¨ì´ì§ 문ìì´ì ë°íí©ëë¤.
trim
문ìì´ì ììê³¼ ëìì 공백ì ìë¦
ëë¤. ë¤ì¤ ì í
í릿 문ìì´
í í릿 문ìì´ì í¬í¨ ìì ì©ë©íë 문ìì´ ë¦¬í°ë´ì ëë¤. ì¬ë¬ë¶ì ê·¸ê²ë¤ê³¼ í¨ê» ë¤ì¤ ì 문ìì´ ë° ë¬¸ìì´ ë³´ê° ê¸°ë¥ì ì¬ì©í ì ììµëë¤.
í
í릿 문ìì´ì ììë°ì´íë í°ë°ì´í ëì ì back-tick (` `) (grave accent)문ìë¡ ë¬¶ìµëë¤. í
í릿 문ìì´ì ì리 íìì를 í¬í¨ í ì ììµëë¤. ì´ë¤ì ë¬ë¬ 기í¸ì ì¤ê´í¸ë¡ íìë©ëë¤. (${expression}
)
ìì¤ì ì½ì íë ìë¡ì´ ì 문ìë í í릿 문ìì´ì ì¼ë¶ì ëë¤. ì ìì ì¸ ë¬¸ìì´ì ì¬ì©íë©´, ì¬ë¬ë¶ì ë¤ì¤ ì 문ìì´ì ì»ê¸° ìí´ ë¤ìê³¼ ê°ì 구문ì ì¬ì©í´ì¼í©ëë¤:
console.log(
"string text line 1\n\
string text line 2",
);
// "string text line 1
// string text line 2"
ë¤ì¤ ì 문ìì´ê³¼ ê°ì í¨ê³¼ë¥¼ ì»ê¸° ìí´, ì¬ë¬ë¶ì ì´ì ì¸ ì ììµëë¤:
console.log(`string text line 1
string text line 2`);
// "string text line 1
// string text line 2"
í¬í¨ì
ì¼ë° 문ìì´ ë´ìì ííìì í¬í¨í기 ìí´, ë¤ìê³¼ ê°ì 구문ì ì¬ì©í©ëë¤:
var a = 5;
var b = 10;
console.log("Fifteen is " + (a + b) + " and\nnot " + (2 * a + b) + ".");
// "Fifteen is 15 and
// not 20."
ì´ì , í í릿 문ìì´ì ê°ì§ê³ , ì¬ë¬ë¶ì ì½ê¸°ì ê°ì´ ë체를 ë§ëë syntactic sugarì ì¬ì©ì í ì ììµëë¤:
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and\nnot ${2 * a + b}.`);
// "Fifteen is 15 and
// not 20."
ìì¸í ë´ì©ì JavaScript 참조ìì í í릿 문ìì´ì ëí´ ì½ì´ë³´ì¸ì.
êµì íIntl
ê°ì²´ë ECMAì¤í¬ë¦½í¸ êµì APIì ì¸ì´ì 문ìì´ê³¼ ì«ìììê³¼ ë ì§ì ìê°ììì ì ê³µíë ëª
ì¹ê³µê°ì
ëë¤. Collator
, NumberFormat
, ì DateTimeFormat
ê°ì²´ë¤ì ìí ìì±ìë¤ì Intl
ê°ì²´ì í¹ì±ë¤ì
ëë¤.
DateTimeFormat
ê°ì²´ë ë ì§ì ìê°ì ììí기ì ì ì©í©ëë¤. ë¤ì ì½ëë 미êµìì ì°ì´ë ìì´ë¡ ë ì§ë¥¼ ììí©ëë¤. (ê²°ê³¼ë ë¤ë¥¸ ìê°ëì ë¤ë¦
ëë¤)
var msPerDay = 24 * 60 * 60 * 1000;
// July 17, 2014 00:00:00 UTC.
var july172014 = new Date(msPerDay * (44 * 365 + 11 + 197));
var options = {
year: "2-digit",
month: "2-digit",
day: "2-digit",
hour: "2-digit",
minute: "2-digit",
timeZoneName: "short",
};
var americanDateTime = new Intl.DateTimeFormat("en-US", options).format;
console.log(americanDateTime(july172014)); // 07/16/14, 5:00 PM PDT
ì«ì ìì
NumberFormat
ê°ì²´ë íµí를 ìí´ ì«ì를 ììíëê²ì ëí´ ì ì©íë¤.
var gasPrice = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
minimumFractionDigits: 3,
});
console.log(gasPrice.format(5.259)); // $5.259
var hanDecimalRMBInChina = new Intl.NumberFormat("zh-CN-u-nu-hanidec", {
style: "currency",
currency: "CNY",
});
console.log(hanDecimalRMBInChina.format(1314.25)); // ï¿¥ ä¸,ä¸ä¸å.äºäº
ì¡°í©
Collator
ê°ì²´ë 문ìì´ì ë¹êµíê³ êµ¬ë¶íë ê²ì ëí´ ì ì©í©ëë¤.
ì를 ë¤ì´, ì¤ì ë¡ ë ì¼ìì phonebookê³¼ dictionaryë¼ë 2ê°ì ë¤ë¥¸ ì¢ ë¥ì ëª ë ¹ì´ë¤ì´ ììµëë¤. ì í기ë¡ë¶ë¥ë ì리를 ê°ì¡°í©ëë¤. ê·¸ë¦¬ê³ êµ¬ë¶ì ìì ë¤ë¥¸ê²ë¤ì "ä", "ö"ì¸ê²ì²ë¼ "ae", "oe"ë¡ íì¥ëìµëë¤.
var names = ["Hochberg", "Hönigswald", "Holzman"];
var germanPhonebook = new Intl.Collator("de-DE-u-co-phonebk");
// as if sorting ["Hochberg", "Hoenigswald", "Holzman"]:
console.log(names.sort(germanPhonebook.compare).join(", "));
// logs "Hochberg, Hönigswald, Holzman"
ì´ë¤ ë ì¼ë§ë¤ì ì¬ë¶ì ë³ëª¨ìê³¼ í¨ê» íì©íë¤. ê·¸ëì ì¬ì ììì ì´ê²ì ë³ëª¨ìì 무ìíë¼ê³ ëª ë ¹í기ì ì¤ì©ì ì´ë¤.
var germanDictionary = new Intl.Collator("de-DE-u-co-dict");
// as if sorting ["Hochberg", "Honigswald", "Holzman"]:
console.log(names.sort(germanDictionary.compare).join(", "));
// logs "Hochberg, Holzman, Hönigswald"
Intl
APIì ëí ìì¸í ë´ì©ì Introducing the JavaScript Internationalization API를 참조íì¸ì.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4