Language/JavaScript

[JavaScript] JavaScript ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

gangintheremark 2024. 3. 10. 12:17
728x90
๐Ÿ’ก ๊ธฐ์กด JAVA์™€ ๋™์ผ ์‹œ ๋˜๋Š” ๋ถ€๋ถ„์€ ์ƒ๋žตํ•˜์—ฌ ์ž‘์„ฑํ•จ

 

JavaScript ์„ ์–ธ

  • HTML์—์„œ JavaScript๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด <script> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉ
  • <script>ํƒœ๊ทธ๋Š” HTML ํŒŒ์ผ ๋‚ด๋ถ€์˜ <head>๋‚˜ <body> ์•ˆ ์–ด๋А ๊ณณ์—์„œ๋‚˜ ์„ ์–ธ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ <body>์•ˆ์˜ ๋๋ถ€๋ถ„์— <script>ํƒœ๊ทธ๋ฅผ ๋‘˜ ๊ฒƒ์„ ๊ถŒ์žฅ
  • ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๋ฌธ์„œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด์„(parsing)ํ•˜๋ฏ€๋กœ, script ์œ„์น˜์— ๋”ฐ๋ผ ๋กœ๋“œ์˜ ์‹คํ–‰ ์‹œ์ ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

 

๋ณ€์ˆ˜

  • ๋ณ€์ˆ˜์˜ ํƒ€์ž… ์ง€์ •์—†์ด ๊ฐ’์ด ํ• ๋‹น๋˜๋Š” ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •
  • ๊ฐ™์€ ๋ณ€์ˆ˜์— ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๊ฐ’์„ ํ• ๋‹น ๊ฐ€๋Šฅ
  • Camel ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉ
  • ํ‚ค์›Œ๋“œ, ๊ณต๋ฐฑ, ๋ฌธ์ž ํฌํ•จ, ์ˆซ์ž๋กœ ์‹œ์ž‘X
  • ํŠน์ˆ˜ ๋ฌธ์ž _ $ ํ—ˆ์šฉ

Camel case : ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•˜๋˜ 2๊ฐœ ์ด์ƒ์˜ ๋‹จ์–ด์ผ ๊ฒฝ์šฐ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ‘œ๊ธฐ


  • ์ž๋ฃŒํ˜•์„ ์›์‹œํƒ€์ž…(primitive)๊ณผ ๊ฐ์ฒดํƒ€์ž…(object)๋กœ ๋ถ„๋ฅ˜
  • ์›์‹œ ํƒ€์ž…์—๋Š” number, string, boolean, undefined, null 5๊ฐ€์ง€๊ฐ€ ์กด์žฌ

number

  • ์ˆซ์ž๋ฅผ ์ •์ˆ˜์™€ ์‹ค์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์–ธ๋”ํ”Œ๋กœ์šฐ, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ, 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.
  • Infinity : ๋ฌดํ•œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ์ˆ˜. โžœ 0์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒฝ์šฐ
  • NaN : Not a Number, ๊ณ„์‚ฐ์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ์ˆ˜
    // ์–ธ๋”ํ”Œ๋กœ์šฐ
    console.log(0 / 100); // 0
    console.log(-0 / 100); // -0

    // ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
    console.log(100 / 0); // Infinity
    console.log(-100 / 0); // -Infinity
    console.log(Infinity / 0); // Infiniity
    console.log(-Infinity / 0); // -Infinity

    console.log(0 / 0); // NaN
    console.log('3A'); // 1
    console.log('A3'); // NaN
    console.log(new Number('1')); // 1
    console.log(new Number('1A')); // NaN

string

  • ์ž‘์€ ๋”ฐ์˜ดํ‘œ ', ํฐ ๋”ฐ์˜ดํ‘œ " ๋‘˜ ๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๋น„์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด, null, undefined, ์ˆซ์ž 0์€ false๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.
  • null์€ ๊ฐ’์ด ์—†๊ฑฐ๋‚˜ ๋น„์–ด์žˆ์Œ์„ ์˜๋ฏธํ•˜๊ณ , undefined๋Š” ๊ฐ’์ด ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธ
    var a;
    var b = null;
    var c = 0;

    if(!a) console.log('a');  // a ์ถœ๋ ฅ
    if(!b) console.log('b');  // b ์ถœ๋ ฅ
    if(!c) console.log('c');  // c ์ถœ๋ ฅ
  • ์„œ๋กœ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์˜ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์–ด๋–ค ์ž๋ฃŒํ˜•์ด๋“  ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ ๊ฐ’์„ ํ•„์š”์— ๋”ฐ๋ผ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ
    console.log("This size is " + 40);
    console.log("40" - 5); // 35
    console.log("40" + 5); // 405
    console.log(parseInt("123.45") + 1); // 124
    console.log("1.1" + "1.1"); // 1.11.1
    console.log(+"1.1" + +"1.1"); // 2.2

 

๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…

ํ˜ธ์ด์ŠคํŒ…์ด๋ž€, var ์„ ์–ธ๋ฌธ์ด๋‚˜ function ์„ ์–ธ๋ฌธ ๋ชจ๋“  ์„ ์–ธ๋ฌธ์ด ํ•ด๋‹น Scope์˜ ์ฒ˜์Œ์œผ๋กœ ์˜ฎ๊ฒจ์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ํŠน์ •์ด๋‹ค. ์ฆ‰, JavaScript์˜ ๋ชจ๋“  ์„ ์–ธ๋ฌธ์ด ์„ ์–ธ๋˜๊ธฐ ์ด์ „์— ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์„ ์–ธ ๋‹จ๊ณ„: ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ๋ณ€์ˆ˜๋ฅผ ๋“ฑ๋ก
  • ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„: ๋ณ€์ˆ˜ ๊ฐ์ฒด์— ๋“ฑ๋ก๋œ ๋ณ€์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น. undefined๋กœ ์ดˆ๊ธฐํ™”๋จ
  • ํ• ๋‹น ๋‹จ๊ณ„: undefined๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜์— ์‹ค์ œ ๊ฐ’์„ ํ• ๋‹น

์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๋Š” ํ•œ ๋ฒˆ์— ์ด๋ฃจ์–ด์ง.

    console.log(num); // undefined
    var num = 123;
    console.log(num); // 123
 

[JavaScript] var let const ์ฐจ์ด์ 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์ธ var let const ์˜ ์ฐจ์ด์  ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹ var ์„ ์–ธํ•œ ๋ณ€์ˆ˜์™€ ๋™์ผํ•œ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์ค‘๋ณต ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ๋งˆ์ง€๋ง‰์— ํ• ๋‹น๋œ ๊ฐ’์ด ์ตœ์ข… ๋ณ€์ˆ˜์— ์ €์žฅ๋œ๋‹ค. ๊ฐ„๋‹จํ•œ ํ…Œ

gangintheremark.tistory.com

 

์—ฐ์‚ฐ์ž

  • + ์—ฐ์‚ฐ์ž๋Š” ๋Œ€์ƒ์˜ ๊ฐ’์ด ๋ชจ๋‘ ์ˆซ์ž์ธ ๊ฒฝ์šฐ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰
  • + ์—ฐ์‚ฐ์ž๋Š” ๋Œ€์ƒ ์ค‘์— ๋ฌธ์ž์—ด์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋ชจ๋“  ์—ฐ์‚ฐ ๋Œ€์ƒ์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ
  • == ์™€ === ์˜ ์ฐจ์ด์ ์€ ์ž๋ฃŒํ˜•๊นŒ์ง€ ๋น„๊ตํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€์˜ ์—ฌ๋ถ€

 

๋ฐ˜๋ณต๋ฌธ - for

  • for ๊ตฌ๋ฌธ์€ ์นด์šดํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๋ถ„๊ณผ in keyword ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๋ฌธ์œผ๋กœ ๋ถ„๋ฅ˜
  • in keyword๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด ๋˜๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ index๊ฐ’์„ ์กฐํšŒ

๊ฐ์ฒด(Object)

  • JavaScript์˜ ๊ฐ์ฒด๋Š” ํ‚ค์™€ ๊ฐ’(Key-Value)๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœํผํ‹ฐ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.
  • JavaScript์˜ ํ•จ์ˆ˜๋Š” ์ผ๊ธ‰๊ฐ์ฒด์ด๋ฏ€๋กœ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
/* ๊ฐ์ฒด ์ƒ์„ฑ */

var obj = {}; // ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด
var obj = new Object(); // Object ์ƒ์„ฑ์ž 
var student = { // ์ƒ์„ฑ์ž ํ•จ์ˆ˜
  name: '๋‚จ๊ฒฝ๋ฏผ',
  area: '์„œ์šธ',
  age: 20,
  info: function() {
    console.log(this.name + ' ' + this.age);
  },
};
  • ๊ฐ์ฒด๋Š” . ์ด๋‚˜ ๋Œ€๊ด„ํ˜ธ []๋ฅผ ํ†ตํ•ด ์†์„ฑ ๊ฐ’์— ์ ‘๊ทผํ•œ๋‹ค.
  • ๊ฐ์ฒด์— ์—†๋Š” ์†์„ฑ์— ์ ‘๊ทผํ•˜๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜
console.log(student.name); // dot ํ‘œ์‹œ๋ฒ•
console.log(student['area']); // [] ํ‘œ๊ธฐ๋ฒ•

console.log(student.address); // undefined
console.log(student.address || '๋ถˆ๋ช…'); // ๋ถˆ๋ช…
  • ์†์„ฑ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” . ์ด๋‚˜ ๋Œ€๊ด„ํ˜ธ [] ์‚ฌ์šฉ
  • ๊ฐ์ฒด์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ์†์„ฑ์ด ์—†์„ ๊ฒฝ์šฐ, ๊ทธ ์†์„ฑ์€ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋จ
  • delete ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜๋ฉด ์†์„ฑ ์ œ๊ฑฐ
student['age'] = 25;
student.area = '์„œ์šธํŠน๋ณ„์‹œ';
student.hobby = '์ฝ”๋”ฉ'; // ์†์„ฑ ์ถ”๊ฐ€
delete student.hobby; // ์†์„ฑ ์ œ๊ฑฐ

๊ฐ์ฒด๋Š” ๋ณต์‚ฌ๋˜์ง€ ์•Š๊ณ  ์ฐธ์กฐ๋œ๋‹ค. ์›์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์•„๋‹Œ ๋ชจ๋“  ๊ฐ’์€ ์ฐธ์กฐ ํƒ€์ž…์ด๋‹ค.

728x90