Front/JS & jQuery

[js] String.prototype

์˜ค์„ ์ง€โ™ฌ 2025. 9. 3. 14:00
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ”น String.prototype ์ด๋ž€?

  • JavaScript์—์„œ ๋ชจ๋“  ๋ฌธ์ž์—ด ๊ฐ์ฒด(String)๊ฐ€ ์ƒ์†๋ฐ›๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
  • ์ฆ‰, "hello" ๊ฐ™์€ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” new String("hello") ๊ฐ์ฒด์—์„œ ํŒŒ์ƒ๋˜๋ฉฐ, ์ด๋•Œ String.prototype์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

๐Ÿ”น ์ฃผ์š” ํŠน์ง•

  1. ๋ชจ๋“  ๋ฌธ์ž์—ด์ด ๊ณต์œ 
    • String.prototype์— ์ •์˜๋œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด ๊ฐ์ฒด์—์„œ ์ƒ์†๋ฉ๋‹ˆ๋‹ค.
    • ์ฆ‰, ํ•œ ๋ฒˆ ํ™•์žฅํ•˜๋ฉด ์ „์—ญ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  2. ๋‚ด์žฅ ๋ฉ”์„œ๋“œ ํฌํ•จ
    • ์˜ˆ:
      • charAt()
      • slice()
      • toUpperCase()
      • toLowerCase()
      • trim()
      • includes()
      • ๋“ฑ๋“ฑ ๋ชจ๋‘ String.prototype์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
String.prototype.capitalizeFirstLetter = function () {
  return this.charAt(0).toUpperCase() + this.slice(1);
};

console.log("hello".capitalizeFirstLetter()); // "Hello"

 

๐Ÿ”น ์ฃผ์˜ํ•  ์ 

  • ๊ธ€๋กœ๋ฒŒ ์˜ค์—ผ(global pollution):
    String.prototype์„ ์ง์ ‘ ํ™•์žฅํ•˜๋ฉด ๋ชจ๋“  ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
    ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์„ ์“ด๋‹ค๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ณดํ†ต์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ:
    ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ES6+ ํ™˜๊ฒฝ์—์„œ๋Š” ์œ ํ‹ธ ํ•จ์ˆ˜(ํ—ฌํผ ํ•จ์ˆ˜) ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฑธ ๋” ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•