String
Last updated
Was this helpful?
Last updated
Was this helpful?
String μ μκ°μ²΄λ λ¬Έμμ΄μ μμ±μμ΄λ€.
λ¬Έμμ΄ λ¦¬ν°λ΄μ π
''
, ""
λ₯Ό μ¬μ©
global objectλ₯Ό λ°λ‘ λ§λ€μ΄μ μ¬μ©ν μ μλ€.
thing string μ무κ°μ΄λ.
ECMAScript 2015λΆν°λ string literalμ΄ Template Iiteralsκ° string literalμ΄ λ μ μλ€.
νΉμλ¬Έμ νν μ΄λ°κ±Έ Escape notation μ΄λΌκ³ νλꡬλ π€
javascriptλ μμ λ°μ΄νμ ν° λ°μ΄νλ₯Ό ꡬλΆνμ§ μκΈ° λλ¬Έμ μκ΄μμ΄ λμνλ€.
μ½λ
μΆλ ₯
\XXX
8μ§μ Latin-1 λ¬Έμ
(where XXX
is 1β3 octal digits; range of 0
β377
)
\'
"\'" => "''" μμ λ°μ΄ν
\"
"\"" => """ ν° λ°μ΄ν
\\
"\\" => "\" μμ¬λμ
\n
"\n abc" => " abc" κ°ν
\r
\v
vertical tab π€
\b
backspace
\f
\uXXXX
unicode codepoint "\u0056" => "V"
\xXX
Latin-1 λ¬Έμ
(where XX
is 2 hex digits; range of 0x00
β0xFF
)
νμ€μ μ¬λ¬μ€λ΄μ μ λ ₯νκ³ μΆμ λμ
+μ°μ°μ
νΉμ "\"
μμ¬λμλ₯Ό μ΄μ©νμ¬ κΈ΄ λ¬Έμμ΄μ κ°ννμ¬λ νμ€λ‘ 보μ¬μ€ μ μλ€.
μμ¬λμλ₯Ό μ¬μ©ν κ²½μ° μμ¬λμ λ€μμ μ΄λ€ λ¬Έμλ μμλ μλλ€.
λ¬Έμμ΄μ ν
μ€νΈ ννλ‘ ννλ μ μλ λ°μ΄ν°λ₯Ό 보κ΄νλ λ° μ μ©νλ€. κ°μ₯ λ§μ΄ μ¬μ©λλ κ²μ length
μ°κ²°νλ +
μ +=
μ°μ°μ μλΈ λ¬Έμλ₯Ό νμΈνλ substring
, μμΌλ©΄ μμΉλ₯Ό νμΈνλ indexOf()
, μλΈ λ¬Έμλ₯Ό μΆμΆνλ substring()
charAt() λ©μλ μ΄μ©νκΈ°
ECMAScript 5μμ μκ°νκ³ μλ λ¬Έμμ΄μ λ°°μ΄κ³Ό κ°μ objectλ‘ μ·¨κΈνμ¬ λ°°μ΄μ²λΌ μΈλ±μ€λ‘ μ κ·ΌνκΈ°
νμ§λ§ λ°°μ΄μ²λΌ μλ‘μ΄ κ°μ ν λΉνκ±°λ μμ ν μ μλ€.
μ΄λ°μ μ λ³΄κ³ λ λ€ "λ¬Έμμ λ°°μ΄"μ΄λΌκ³ μκ°ν μ μμ§λ§ μλλ€.
λ¬Έμμ΄μ "λΆλ³ κ° Immutable"μ΄μ§λ§ λ°°μ΄μ "κ°λ³κ° Mutable"μ΄λ€.
str[1]λ²μ²λΌ νΉμ λ¬Έμλ₯Ό μ κ·Όνλ ννκ° λͺ¨λ μλ°μ€ν¬λ¦½νΈ μμ§μμ μ ν¨ν κ²μ μλλ€.
μ€μ μΈν°λ· μ΅μ€νλ‘λ¬ 7μ μ΄λ₯Ό λ¬Έλ² μλ¬λ‘ μΈμνλ€.
str.charAt(1)λ‘ μ κ·Όνλκ² λ§λ€.
λ¬Έμμ΄μ λΆλ³ κ°μΌλ‘ λ¬Έμμ΄ λ©μλλ κ·Έ λ΄μ©μ λ°λ‘ λ³κ²½νμ§ μκ³ νμ μλ‘μ΄ λ¬Έμμ΄μ μμ±ν ν λ°ννλ€. νμ§λ§ λ°°μ΄λ©μλλ κ·Έ μ리μμ μμ νλ€.
λ¬Έμμ΄μ λ€λ₯Ό λ μ μ©ν λ°°μ΄ λ©μλλ λ¬Έμμ΄μ μΈ μ μμ§λ§, λ¬Έμμ΄μ λν΄ λΆλ³ λ°°μ΄ λ©μλλ₯Ό λΉλ € μΈ μ μλ€.
λ°°μ΄μ κ°λ³ λ©μλλ μ¬μ©ν μ μλ€.
λ¬Έμμ΄μ λΆλ³ κ°μ΄λΌ λ°λ‘λ°λ‘ λ³κ²½λμ§ μμΌλ―λ‘ λ°°μ΄μ κ°λ³ λ©μλλ λ©μλλ ν΅νμ§ μκ³ , λΉλ € μ°λ κ² λν μλλ€.
λ¬Έμμ΄μ λ°°μ΄λ‘ λ°κΎΈκ³ μνλ μμ
μ μνν ν λ€μ λ¬Έμμ΄λ‘ λ°κΎΈλ Hackμ μ¬μ©νκΈ°λ νλ€. μ΄ μ¬μ©μ Codewarsμμ λ§€μ° νν.. νμ§λ§ μ΄λ¬ν λ°©λ²μ μ λμ½λκ° μμ¬ μλ κ²½μ°(νΉμλ¬Έμ, Multibyte λ±) μ΄ λ°©λ²μ΄ ν΅νμ§ μλλ€.
μκ°μ λ¬λ¦¬νμ¬ μμ μ΄ λΉλ²ν νμν λ¬Έμμ΄μ΄λΌλ©΄ λ¬Έμ λ¨μλ‘ μ μ₯νλ λ°°μ΄λ‘ μ·¨κΈνλκ² λ λμ μ μλ€.
less-thanκ³Ό greater-than μ°μ°μ
λ§μ μ¬μ©νμ¬ λ¬Έμμ΄μ λΉκ΅ν μ μλ€.
String μΈμ€ν΄νΈμ μμλ localeCompare()
λ©μλλ₯Ό μ¬μ© ν μ μλ€.
νΉμ λΈλΌμ°μ μ μ’ μλμ§ μμ ECMAScript λͺ μΈμ λ΄μ₯κ°μ²΄λ₯Ό λ§νλ€. (Window, Button λ±μ μ μΈ)
Stirng()μ ν¬ν¨νμ¬ Number(), Boolean(), Array(), Object(), Function(), RegExp(), Dat(), Error(), Symbol()
κ°μ₯ λ§μ΄ μ°λ λ€μ΄ν°λΈ λ€μ΄ν°λΈλ λ΄μ₯ ν¨μμ΄λ€.
λ΄μ₯ λ€μ΄ν°λΈ μμ±μλ κ°μμ .prototype κ°μ²΄λ₯Ό κ°μ§λ€.(Array.prototype, String.prototype)
prototype κ°μ²΄μλ ν΄λΉ κ°μ²΄μ νμ νμ λ³λ‘ κ³ μ ν λ‘μ§μ΄ λ΄κ²¨ μλ€.
λ¬Έμμ΄ μμ κ°μ λ°μ±μΌλ‘ νμ₯ν κ²κΉμ§ ν¬ν¨νμ¬ λͺ¨λ String κ°μ²΄λ κΈ°λ³Έμ μΌλ‘ Stirng.prototype κ°μ²΄μ μ μλ λ©μλμ μ κ·Ό ν μ μλ€. νλ‘ν νμ μμ(prototype Delegation) λλΆμ λͺ¨λ λ¬Έμμ΄μ΄ λ©μλλ€μ κ°μ΄ μΈ μ μλ€.
Stringμ "λΆλ³ κ° Immutable"μ΄κΈ° λλ¬Έμ λ¬Έμμ΄ κ°μ λ³κ²½νλ λ©μλλ μλ€. μμ μ΄ μΌμ΄λλ©΄ μλ‘μ΄ κ°μ μμ±νλ€.
νλ‘ν νμ μ λ³κ²½ν μλ μμ§λ§, λ³κ²½νμ§ μλκ² μ’λ€.
string primitivesμ string objectλ μλ‘ λ€λ₯΄κ² μ·¨κΈνλ€.
primitive strings
λ¬Έμμ΄ λ¦¬ν°λ΄(μμ λ°μ΄νλ ν° λ°μ΄ν)κ³Ό μμ±μ μμ΄(new ν€μλ μμ΄) String μ νΈμΆνμ¬ λ°νν λ¬Έμμ΄
new String('string object')
μμ±μμ κ²°κ³Όλ μμκ° 'string object'
λ₯Ό κ°μΌ object wrapper μ΄λ€.
typeof stringObject // "object"
μ΄ κ²°κ³Ό κ°μ 보면 μμ μ κ°μΌ μμκ°μ νμ
μ΄ μλλΌ objectμ νμ νμ
μ κ°κΉλ€.
console.logλ‘ νμΈνμ λ λͺ¨μ΅ (λΈλΌμ°μ λ§λ€ λ€λ₯΄λ€)
String, Number, Boolean κ°μ λ¨μ primitiveλ boxing
κ³ μ μ κ±°μΉλ€.
String
μΌλ‘ νμλ κ²μ 보μ ν΄λΉ κ°μ²΄ λνΌλ‘ μλ λ°μ±λ¨μ μ μ μλ€.
μμκ°μ νλ‘νΌν°λ λ©μλκ° μμΌλ―λ‘ μ κ·ΌνκΈ° μν΄μλ μμ κ°μ κ°μ²΄ λ νΌλ‘ κ°μΈμΌνλλ° -> μ΄λ₯Ό μλ°μ€ν¬λ¦½νΈκ° μλμ μΌλ‘ ν΄μ€λ€.
κ·Έλ λ€λ©΄?
str.lengthλ κ°μ²΄λ‘ κ°μΈλ μΌμ΄ μκΈ°λκΉ μ²μλΆν° κ°μ²΄λ₯Ό μμ±ν μ μλλ‘ String Objectλ‘ μ°λκ² λ μ’μκΉ?
λ΅μ λ!
λΈλΌμ°μ κ° μ€μ€λ‘ μ΅μ ν νλ€.
κ°λ°μκ° μ μ΅μ ν(pre-Opimize)νκ² λλ€λ©΄ μ€νλ € λ λλ €μ§ μ μλ€.
μ§μ κ°μ²΄ ννλ‘ μ¨μΌν μ΄μ λ κ±°μ μλ€. μμ보기 μ½κ² μμ κ°μ μ¬μ©νμ
μλμΌλ‘ μμ κ°μ λ°μ±νκ³ μ νλ€λ©΄ Object()ν¨μλ₯Ό μ¬μ©νμ
κ°μ²΄ λνΌλ‘ μ§μ λ°μ±νλ건 κΆνμ§ μλλ€.
νμ§λ§ λ§μ½ new Boolean(false
κ°μ κ²½μ° κ°μ²΄ λνΌλ‘ truthy κ°μ΄ λλ€. μ΄λ°κ²½μ°λ±μ λλΉνμ¬ Object()λ‘ νμ
μ°Έκ³
You Don't Know JS: νμ κ³Ό λ¬Έλ², μ€μ½νμ ν΄λ‘μ
carriage return μ΄κ²μ΄ 무μμΈκ°.. μμ νμκΈ°λ₯Ό μλ‘ λ€μ΄μΌ ν μ λ line feedμ carriage returnμ΄ ν¨κ»ν΄μΌ λ€μμ€ μμλΆλΆμμ κΈμ μΈ μ μμλ€. μ°Έκ³
form feed If you were programming for a 1980s-style printer, it would eject the paper and start a new page. You are virtually certain to never need it.