[JS] ์ž…๋ฌธ

Yunhye Parkยท2023๋…„ 9์›” 23์ผ
0
post-thumbnail
post-custom-banner

1. ์ฐธ์กฐ ๋ฐฉ์‹

1.1 ๋‚ด์žฅ ๋ฐฉ์‹

์ฝ”๋“œ๊ฐ€ ์ผํšŒ์„ฑ or ์งง์Œ

<script src=".js"></script>
์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์งˆ ๋•Œ or ์žฌ์‚ฌ์šฉ

1.3 ์œ„์น˜๋Š” ์•„๋ฌด๋ฐ๋‚˜ ๊ฐ€๋Šฅ

body ๋งจ๋์— ์ฃผ๋กœ

2. ํ‘œ๊ธฐ๋ฒ•

  • dash-case : CSS (๋‹จ์–ด ๋„์–ด์“ฐ๊ธฐ)
  • snake_case, camelCase, PascalCase : programmingํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•๋“ค

cf. ์ฃผ์„
ํ•œ ์ค„ //
๋‘ ์ค„ ์ด์ƒ /* */

3. ๋ณ€์ˆ˜

ํŠน์ • ๊ฐ’์„ ๋‹ด๋Š” ๊ณต๊ฐ„

ํ‚ค์›Œ๋“œ ๋ณ€์ˆ˜์ด๋ฆ„ = ๊ฐ’

ex.
const name = "une" ์„ ์–ธ๊ณผ ํ• ๋‹น ๋™์‹œ์—
let name; ๋ณ€์ˆ˜ ์„ ์–ธ
name = value; ํ• ๋‹น

3.1 var

  • ์žฌ์„ ์–ธ O ์žฌํ• ๋‹น O

ex.
var name;
'name'์ด๋ผ๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ
์„ ์–ธ๋งŒ ํ•˜๋ฉด ๊ฐ’์ด ์—†์œผ๋ฏ€๋กœ undefined ์ƒํƒœ

name="une 1";
name="une 2";
'une 1'์„ ์žฌํ• ๋‹นํ•˜๊ณ , ๋‹ค์‹œ 'une 2'๋กœ ์žฌํ• ๋‹น.

var์€ ์žฌ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•ด์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์ง€์–‘ํ•˜๋Š” ์ถ”์„ธ.

3.2 let

  • ์žฌ์„ ์–ธ X ์žฌํ• ๋‹น O
  • ์ผ๋ฐ˜ ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ์ฃผ๋กœ ์‚ฌ์šฉ

3.3 const

  • ์žฌ์„ ์–ธ X ์žฌํ• ๋‹น X
  • ๊ทธ๋ž˜์„œ ์„ ์–ธ๊ณผ ํ• ๋‹น์„ ๋™์‹œ์— ํ•ด์•ผ ํ•œ๋‹ค.

4. ์ž๋ฃŒํ˜•

js๋Š” ์•ฝํ•œ ํƒ€์ž… ์–ธ์–ด: ๋ณ€์ˆ˜ ์•ˆ์— ์–ด๋–ค ์ž๋ฃŒํ˜•์ด๋“  ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

cf. ๊ฐ•ํ•œ ํƒ€์ž… ์–ธ์–ด: ๋ณ€์ˆ˜ ์•ˆ์— ์–ด๋–ค ์ž๋ฃŒํ˜•์ด ๋“ค์–ด๊ฐˆ์ง€๋„ ์„ ์–ธ.
ex. int age = 33;
(JAVA, C, C++, ...)

4.1 ๊ธฐ๋ณธ(Primitive) ์ž๋ฃŒํ˜•

string, number, boolean(T/F), null, undefined

cf. null vs undefined

  • null :
    ๊ฐ’์„ ์˜๋„์ ์œผ๋กœ ๋น„์›Œ๋‘˜ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. typeof๋กœ ์ž๋ฃŒํ˜•์„ ํ™•์ธํ•˜๋ฉด object๋กœ ์ธ์‹. ๊ทธ๋ž˜์„œ ์—„๋ฐ€ํžˆ ๋งํ•˜์ž๋ฉด ๊ธฐ๋ณธ์ž๋ฃŒํ˜•๋ณด๋‹ค๋Š” ๊ฐ์ฒด, ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ด ๋” ์–ด์šธ๋ฆฐ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • undefined :
    ES์—์„œ ๋ณ€์ˆ˜๋Š” '์„ ์–ธ'ํ•œ๋‹ค, ํ•จ์ˆ˜๋Š” '์ •์˜'ํ•œ๋‹ค๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. ํ•˜์ง€๋งŒ undefined์˜ '์ •์˜๋˜์ง€ ์•Š์Œ'์€ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ ๋ณ€์ˆ˜ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. typeof๋กœ ์ž๋ฃŒํ˜•์„ ํ™•์ธํ•˜๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • true or false in boolean aren't "string". It has a value itself.

  • ์—ฌ๋Ÿฟ ๋ถ€๋ฅด๊ธฐ
    "string" + variable-name
    "string", variable-name
    variable-name + variable-name
    `string ${variable-name} `

4.2 ๊ฐ์ฒด(object) ์ž๋ฃŒํ˜•

  • ๊ธฐ๋ณธํ˜• ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ, ์ฆ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋Œ€๋ถ€๋ถ„์ด๋ผ๊ณ  ํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.
    - ex. ํ•จ์ˆ˜, ๋ฐฐ์—ด, ํด๋ž˜์Šค, ...
  • ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์— ๋Œ€ํ•œ ์ •๋ณด ์ €์žฅ(๋™์ž‘, ์†์„ฑ ๋“ฑ์˜ ๊พธ๋Ÿฌ๋ฏธ)
  • key์™€ value๋กœ ๊ตฌ์„ฑ๋œ property(=๋ฐ์ดํ„ฐ. ํ•จ์ˆ˜๋„ ๊ฐ€๋Šฅ)์˜ ์ง‘ํ•ฉ

ex.

    let cat = {
    //key: value ๊ตฌ์„ฑ
    name: "๋‚˜๋น„",
    age: 80,
    mew: function() {} //๋ฉ”์„œ๋“œ
    }

4.2.1 ๋ฐฐ์—ด(Array, List)

๋น„์Šทํ•œ ํŠน์ง•์„ ๊ฐ€์ง„ ๊ฐ’๋“ค์„ ํ•˜๋‚˜์— ๋ณ€์ˆ˜์— ๋‹ด์„ ๋•Œ.

  • ์ธ๋ฑ์‹ฑ: ๋ฐฐ์—ด์˜ ์›์†Œ์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉ
    ex. fruits[0]

4.2.2 ๋”•์…”๋„ˆ๋ฆฌ

์ „ํ™”๋ฒˆํ˜ธ๋ถ€์ฒ˜๋Ÿผ key:value ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค. ๋ฐฐ์—ด(=๋ฆฌ์ŠคํŠธ)์—์„œ๋Š” ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์„ ๋•Œ ์ธ๋ฑ์‹ฑ์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋”•์…”๋„ˆ๋ฆฌ๋Š” key๊ฐ’์œผ๋กœ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
ex.

let basketBall {
	player: 5,
	isFun: true,
	onePoint: "์ž์œ ํˆฌ",
	cheering: function () {
    	console.log("ํ•˜๋‚˜๋งŒ ๋”!");
    } //๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” function์€ ๋ฉ”์„œ๋“œ!
}

5. ํ˜•๋ณ€ํ™˜

5.1 ์ž๋™ ํ˜•๋ณ€ํ™˜

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์Šค์Šค๋กœ ํ˜•ํƒœ๋ฅผ ๋ณ€ํ™˜
ex. prompt ์‚ฌ์šฉ ์‹œ string ์ทจ๊ธ‰

5.2 ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜

  • ๋ฌธ์ž์—ด๋กœ
    String()
    toString()

  • ์ •์ˆ˜๋กœ
    Number()
    ParseInt()

6. ์—ฐ์‚ฐ์ž

6.1 ๋น„๊ต์—ฐ์‚ฐ์ž

== : ๊ฐ’๋งŒ ๋น„๊ต
=== : ์ž๋ฃŒํ˜•๊นŒ์ง€ ๋น„๊ต

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ

!= : ๊ฐ’๋งŒ ๋น„๊ต
!== : ์ž๋ฃŒํ˜•๊นŒ์ง€ ๋น„๊ต

ex.

80 === "80" //false
80 != "80" //false

๊ทธ์™ธ >=, >, <=, < ์กด์žฌ

cf. null check

์ฝ”๋“œ๋ฅผ ์งค๋•Œ ๊ฐ’์ด null์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. null๊ณผ undefined๋Š” ์„œ๋กœ๋ฅผ ==์—ฐ์‚ฐ์ž๋กœ ๋น„๊ตํ•  ๋•Œ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ™œ์šฉํ•ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ex.

//1
null == undefined //true

//2
null == 1 //false
undefined == "1" //false

์ฒซ๋ฒˆ์งธ ์ƒํ™ฉ ์™ธ์— null์ด๋‚˜ undefined๋ฅผ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋น„๊ตํ•˜๋ฉด ์–ธ์ œ๋‚˜ false๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

6.2 ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž

๊ธฐ๋ณธ ์‚ฌ์น™์—ฐ์‚ฐ +, -, /, *

% : ๋‚˜๋จธ์ง€ ๊ตฌํ•˜๊ธฐ
ex.

console.log(5 % 2 == 1) // true
  • ๋ฐฐ์ˆ˜ ๊ตฌํ•  ๋•Œ ์šฉ์ด
    - ์œ„ ์˜ˆ์‹œ์—์„œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด 2์˜ ๋ฐฐ์ˆ˜(์ง์ˆ˜)

** : n์˜ m์Šน
ex.
2**3 = 8

6.3 ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž

&& and
|| or
! not

ex.
!true => false

6.4 ์ฆ๊ฐ์—ฐ์‚ฐ์ž

for๋ฌธ์—์„œ ์ž์ฃผ ์“ฐ์ธ๋‹ค.

let num = 6;
console.log(num++)
// ์ฝ”๋“œ ์ฒ˜๋ฆฌ ํ›„ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— '์ „์œ„์—ฐ์‚ฐ์ž'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
console.log(++num)
// ์ฆ๊ฐ€ ํ›„ ์ฝ”๋“œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— 'ํ›„์œ„์—ฐ์‚ฐ์ž'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

cf. ์—ฐ์‚ฐ์ž ์ค„์ด๊ธฐ

num = num + 1; <=> num +=1;
num = num - 1; <=> num -=1;

๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ *=(๊ณฑํ•˜๊ธฐ), /=(๋‚˜๋ˆ„๊ธฐ)

7. ํ•จ์ˆ˜

ํ•จ์ˆ˜๋Š” ์„ ์–ธ๋ฌธ๊ณผ ํ˜ธ์ถœ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ํ•จ์ˆ˜์—์„œ ๋‚˜์˜จ ๊ฐ’์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์—ฌ ํ™œ์šฉ.

  • ๋งค๊ฐœ๋ณ€์ˆ˜ () : ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ๊ฐ’ ์ „๋‹ฌ
  • ๋ฐ˜ํ™˜ return : ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ํ•จ์ˆ˜ ์™ธ๋ถ€๋กœ ๊ฐ’ ์ „๋‹ฌ
  • ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜๊ฐ’ ์œ ๋ฌด์— ๋”ฐ๋ผ 4๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ.
    - ์—ฌ๊ธฐ์— ๋ช…์‹œ์  ํ•จ์ˆ˜, ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ๋˜ ๋‹ค๋ฅด๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

7.1 ๋ช…์‹œ์  ํ•จ์ˆ˜๋กœ ์„ ์–ธ

function funcName (//๋งค๊ฐœ๋ณ€์ˆ˜) {
	// ๊ธฐ๋Šฅ
    }
    
funcName(); // ํ•จ์ˆ˜ ํ˜ธ์ถœ

๋ช…์‹œ์  ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ ๋จผ์ € ํ•˜๊ณ  ํ›„์— ์„ ์–ธํ•ด๋„ ๊ธฐ๋Šฅํ•œ๋‹ค. ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ˜ธ์ด์ŠคํŒ…(ํ•จ์ˆ˜ ์„ ์–ธ์ด ํ˜ธ์ถœ๋ณด๋‹ค ๋จผ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ํ˜„์ƒ) ๋•๋ถ„์— top-bottom์˜ ์ˆœ์„œ๋ฅผ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์ž‘์„ฑํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

7.2 ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ์„ ์–ธ

let sum = function () => {

}

let sum = function (//๋งค๊ฐœ๋ณ€์ˆ˜) {
	return //๋ฐ˜ํ™˜๊ฐ’; 
    }

8. ์กฐ๊ฑด๋ฌธ

8.1 if

ex.

if(condition1) {
	condition1 is true then
}
else {
	condition1 is false then}
if(condition1) {
	// condition1 is true then
} else if {
	// (condition1 is false์ž„์„ ๋ฏธ๋ฆฌ ์ „์ œ &&)
    // condition2 is true then
}
else {
	// all conditions is false then}

if๋ฌธ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•ด์„œ else if๋ฌธ์œผ๋กœ ๋„˜์–ด์™”๋‹ค๋ฉด, ์ด๋ฏธ if๋ฌธ์— ์žˆ๋Š” ์กฐ๊ฑด์€ ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋ฏ€๋กœ else if๋ฌธ์— ๊ธฐ์ž…ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

  • if๋ฅผ ์‹œ์ž‘์œผ๋กœ ์กฐ๊ฑด ๊ฒ€์‚ฌ ์‹œ์ž‘.
    - else๋‚˜ else if ๋‹จ๋ฌธ์œผ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€.
    - ๊ฐ if๋ฌธ์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ธ์‹.
  • ๊ฐ€๋…์„ฑ ํ•ด์น˜๋Š” ์ค‘์ฒฉ if๋ฌธ ์ง€์–‘.

8.2 switch

๊ฐ„๋‹จํ•œ ๊ฐ’ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ

let a = 2;
switch (a) {
	case 1: 
		console.log('a๋Š” 1์ž…๋‹ˆ๋‹ค');
        break;
    case 2:
    	console.log('a๋Š” 2์ž…๋‹ˆ๋‹ค');
        break;
    default:
    	console.log('a๊ฐ’์„ ๋ชจ๋ฅด๊ฒ ์–ด์š”');
   }
  • break๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•ด๋‹น ์ผ€์ด์Šค ๋
    - ํ•˜์ง€ ์•Š์œผ๋ฉด, ์œ„ ์ผ€์ด์Šค(case1, case2)๋Š” ํ†ต๊ณผ๋˜์—ˆ๋‹ค๋Š” ์ „์ œ ํ•˜์— ๋ฌด์กฐ๊ฑด ์‹คํ–‰.

8.3. ์‚ผํ•ญ์—ฐ์‚ฐ์ž

์กฐ๊ฑด ? ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ(1์ค„๋งŒ) : ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ(1์ค„๋งŒ)

ex.

let username="une";

username == "une" ? console.log("hi une") : console.log("who are u?)";

์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜๋„ ์žˆ๋‹ค.

let msg = username == "une" ? "hi une" : "๋ˆ„๊ตฌ์„ธ์š”?"
console.log(msg);

๋ง๋ถ™์ด๋Š” ๋ง

  • ์•Œ์•„๋ณผ ๊ฐœ๋… : js ํ˜ธ์ด์ŠคํŒ…
profile
์ผ๋‹จ ํ•ด๋ณด๋Š” ํŽธ
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€