λ³μλ μ΄λ ν λ°μ΄ν°λ₯Ό ν κ°μΌλ‘ μ μΈνλ κ²μΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ μ©λλ‘ μ¬μ©νλ€.
let sunghoon;
sunghoon = "developer";
μκΈ° μ½λλ sunghoon μ΄λΌλ λ³μλ₯Ό μ μΈ(Declaration)νκ³ μ μΈν λ³μ(Assignment)μ developerλΌλ κ°μ ν λΉ(Assignment)νλ€λ λ»μΌλ‘,
let sunghoon = "developer";
μκΈ° μ½λμ κ°μ΄ νμ€λ‘ μμ± κ°λ₯νλ€.
let μ λΉμ·ν ν€μλλ var μ constκ° μλλ°
varμ μ μΈνλ λ³μλ₯Ό λ€μ λ€λ₯Έ κ°μΌλ‘ μ μΈ ν μ μμ§λ§, letκ³Ό constλ λ€μ μ μΈ ν μ μμΌλ©°(μλ¬ λ°μ),
letμ λ³μλ₯Ό μ¬μ§μ ν μ μμ§λ§, constλ μ²μ μ μΈν κ°μ λ³κ²½ν μ μλ€.
μλ°μ€ν¬λ¦½νΈλ₯Ό 곡λΆνλ©΄μ κ°μ₯ λ¨Όμ μ΄ν΄ν΄μΌ ν κ²μ '=(equal)'μ΄ 'λ'μ΄ μλκ³ κ°μ λΆμ¬νλ ν λΉ μ°μ¬μλΌλ κ² μ΄λ€.
μκΈ° sunghoon = "developer";λ₯Ό μ½μλ μ±νμ λ벨λ‘νΌλ‘ μ½κΈ°λ³΄λ¨ μ±νμ λ벨λ‘νΌλ₯Ό ν λΉμΌλ‘ μ½λ μ°μ΅μ΄ νμν λ― μΆλ€.
κ·Έλ¦¬κ³ λ³μλͺ
μ μ μλ λ°μ΄μ°κΈ°λ₯Ό μ°μ§ μμΌλ©° λ°μ΄μ°κΈ° λ€μ κΈμλ₯Ό λλ¬Έμλ‘ μ λλ€λ μ½μ(camelCase)μ΄ μλ€.
ex) let currentWriter = 1;
λ§μ½ λ³μλ₯Ό μ μΈνκ³ κ°μ ν λΉνμ§ μμΌλ©΄, undefined λΌλ κ°μ΄ ν λΉλλ©° μ΄ κ°μ νμ ν nullκ³Ό λ€λ₯Έ κ°μ΄λ€.
μλ£νμ 7κ°μ§κ° μμΌλ©°
String - λ¬Έμμ΄ - '',"" μ¬μ΄μ κ°
Number - μλ°μ€ν¬λ¦½νΈμ νκ³(-(2^53 β 1) μ 2^53 β 1μ¬μ΄μ κ°λ§ νν κ°λ₯)λ‘ Numberλ Bigintλ‘ λλλλ° μ«μ λ€μ n\μ λΆνλ©΄ Bigintλ‘ μΈμλλ©° μ«μ ν¬κΈ°μ νκ³κ° μμ΄μ§λ€.
Boolean - λΆλ¦¬μΈ(λΆλ¦°) - μ°Έ, κ±°μ§μ κ° - λ°λ³΅λ¬Έ, 쑰건문 λ±μμ μ¬μ©.
undefined - μ§μ λμ§ μμ, λ³μμ ν λΉνμ§ μμμλ ν λΉλ¨.
null - μ§μ λμ§ μμ, λΉ κ°μ΄λΌλ κ²μ undefinedμ κ°μ§λ§, κ°μ λ°λ‘ ν λΉν΄μΌνλ κ°μ΄λ©°, μ£Όλ‘ μ΄λ€ λ³μλ₯Ό μ΄κΈ°ννλ μ©λλ‘ μ¬μ©.
Symbol - HTMLμ ID λΉμ·ν κ².
Object - κ°μ²΄, μ¬κΈ°μ ν¨μλ ν¬ν¨λλ€.
μ¬κΈ°μ (undefined === null) = false μ΄λ€.
ν¨μλ μ½κ² λ§ν΄ μ§μμ¬νμ λ¬Άμμ΄λ€.
ν¨μμ ꡬμ±μ ν¬κ² μ
λ ₯κ³Ό μΆλ ₯μΌλ‘ λλλ€.
μ
λ ₯μ μμμ 맀κ°λ³μ(Parameter), μΈμ(Argument)κ° μκ³ ,
μΆλ ₯μ μμμ λ°ν(Return)μ΄ μλ€.
function funcName(맀κ°λ³μ1, 맀κ°λ³μ2){
let sum = (맀κ°λ³μ1 + 맀κ°λ³μ2);
//λ°ν
return sum
}
// 4, 5κ° μΈμμ΄λ€.
funcName(4,5) // 9
맀κ°λ³μλ μ½λλΈλ λ΄μμ ν¨μλ₯Ό μ κ°ν λ μ¬μ©νκ³
μΈμλ ν¨μλ₯Ό μ κ°λ ν¨μμ λμ
ν κ°μ΄λ€.
λ§μ½ returnμ μ¬μ©νμ§ μμΌλ©΄ ν΄λΉ ν¨μλ μ΄λ€ μΈμλ₯Ό λ£λλΌλ undefinedλ₯Ό μΆλ ₯νλ€.
ν¨μμ μ μΈ λ°©μμΌλ‘λ μΈκ°μ§κ° μλλ°
//ν¨μ μ μΈμ
function plus(num1, num2){
let sum = num1 + num2;
return sum;
}
//ν¨μ ννμ
let plus = function(num1, num2){
let sum = sum1 + num2;
return sum;
}
// νμ΄ν ν¨μ
let plus = (num1, num2) => {
let sum = sum1 + sum2;
return sum;
}
//νμ΄ν ν¨μλ μ½λλΈλ‘ λ΄ μμμ΄ νλμΌ λ μ€κ΄νΈμ 리ν΄μ μλ΅ν μ μλ€.
let plus = (num1, num2) => (num1 + num2);
μκΈ° μΈκ°μ μκΈ΄ 건 λ¬λΌλ ν¨μκ° λ΄κ³ μλ μμ μ체λ λμΌνλ€.
μ μΈμκ³Ό λ€λ₯Έ λ λ°©μκ³Ό κ°μ₯ ν° μ°¨μ΄λ μ μΈμμ νΈμ΄μ€ν
μ€νμ μ 무μ΄λ€.
μλ°μ€ν¬λ¦½νΈλ μ½λλ₯Ό μ€νν λ μ²μλΆν° λκΉμ§ μ½μ λ€μ λ©λͺ¨λ¦¬μ μ μ₯ν λ€μμ μΆλ ₯λλλ°, μ΄ κ³Όμ μμ λ³μμ ν¨μ μ μΈμ μ΄λ μμΉμ μλμ§ κ°μ₯ λ¨Όμ μ΄λ£¨μ΄μ§λ€κ³ μκ°νλ©΄ νΈνλ€.
function wannaBeInFuture(name){
let futureJob = name + ' wanna be a developer.';
return futureJob;
}
console.log(wannaBeInFuture('Sunghoon')); // Sunghoon wanna be a developer.
// ν¨μ μ μΈμ΄ ν¨μ νΈμΆ λ€μ μμ§λ§ μ μμ μΌλ‘ μΆλ ₯λλ€.
console.log(wannaBeInFuture('Sunghoon')); // Sunghoon wanna be a developer.
function wannaBeInFuture(name){
let futureJob = name + ' wanna be a developer.';
return futureJob;
}
νΈμ΄μ€ν λλ¬Έμ console.logμ μμΉμ κ΄κ³μμ΄ μΆλ ₯μ λμΌνλ€.
λ§μ½ νμ νλ ν¨μ μ리μ μ μΈμμ΄ μλλΌ ννμ ν¨μκ° μμλ€λ©΄?
console.log(wannaBeInFuture('Sunghoon')); // Uncaught ReferenceError: wannaBeInFuture is not defined
let wannaBeInFuture = function(name){
let futureJob = name + ' wanna be a developer.';
return futureJob;
}
μλ¬κ° λ°μνλ€.
κ·Έλ¬λ νΈμ΄μ€ν μ νΉμ±μ μκ°ν΄μ μ½λκ° κΌ¬μΌ μ μμΌλ ν¨μμ μΈμ λλλ‘ μλ¨μ, νΈμΆμ ν¨μμ νλ¨μ μ λ νΈμ΄ μ’λ€.
쑰건문μ μκΈ°μν΄μ μ°μ°μλ₯Ό μ°μ μμμΌ νλλ°,
κ·Έμ€ λΉκ΅ μ°μ°μλΌλ κ²μ΄ μλ€.
μ°μ°μκ° μ λ² λ§κΈ° λλ¬Έμ <(<=), >(>=), ===, !== κΈ°λ³Έμ μΌλ‘ μ΄ λ€κ°μ§λ 머리μ μ¬μ΄λκ³ λλ¨Έμ§λ MDNμ λλλ€λ©° λμ μ΅νλ νΈμ΄ μ’μ λ― νλ€.
μ΄ μ°μ°μλ€μ μμμΌνλ μ΄μ λ μ°μ°μλ€λ‘ λΆλ¦¬μΈνμ μ κ°μ λ½μλΌ μ μκΈ° λλ¬ΈμΈλ°
let age = 19; //
// age κ°μ΄ 19μ΄κΈ°μ age < 19λ κ±°μ§μ΄λ―λ‘ elseλ₯Ό μ€ννλ€.
if(age<19){
console.log('μλ
!')
} else {
console.log('μλ
νμΈμ!')
}
κ°λ¨ν μμ΄μ§λ§ μ΄μ²λΌ κ°μ λ°λΌ κ²°κ³Όλ¬Όμ΄ λ€λ₯΄κ² μΆλ ₯λλλ‘ ν μ μλ€.
if(쑰건1){ 쑰건 1μ΄ μ°ΈμΌ λ μ€ν.
} else if(쑰건2) { 쑰건1μ΄ κ±°μ§μ΄κ³ 쑰건2κ° μ°ΈμΌ λ μ€ν.
} else if(쑰건3) { 쑰건1, 2κ° κ±°μ§μ΄κ³ 쑰건 3μ΄ μ°ΈμΌ λ μ€ν.
} else { 쑰건1, 2, 3 λͺ¨λ κ±°μ§μΌ λ μ€ν.
}
λΉκ΅μ°μ°μμ κ²½μ° NaN(Not a Number)μ λΉκ΅ν κ²½μ° νμ falseλ₯Ό λ°ννλ€.
μ°μ°μμ μ’
λ₯μ λ
Όλ¦¬ μ°μ°μλ μλλ°,
&&, ||, ! λ±μ΄ λ°λ‘ κ·Έκ²μ΄λ€.
λ
Όλ¦¬ μ°μ°μλ λ€λ₯Έ ν¬μ€νΈμ λ΄μ©μ μ‘°κΈ λ μΆκ°νμΌλ κ·Έ μͺ½μ 보μ.
&&λ AND μ°μ°μλ‘ μ°μ°μ μ μͺ½μ κ°μ΄ μ λΆ μ°Έμ΄μ΄μΌ μ°Έμ μΆλ ₯νλ μ°μ°μμ΄λ€.
ex) isFruit && isSweet -> κ³ΌμΌμκ³Ό λμμ λ¬μμΌ μ°Έ.
||λ OR μ°μ°μλ‘ μ°μ°μ μ μͺ½μ κ°μ€ νλλ§ μ°Έμ΄μ΄λ μ°Έμ μΆλ ₯νλ μ°μ°μμ΄λ€.
ex) isFruit || isVegetable -> κ³ΌμΌμ΄κ±°λ μ±μλ©΄ μ°Έ.
!λ NOT μ°μ°μλ‘ μ μ ν λ μ°μ°μμ ν¨κ» μ°λ μ°μ°μμΈλ°, λ μ°μ°μ μ μͺ½μ κ° μμ λΆμ΄ λΆμ μ μλ―Έλ₯Ό ν¬ν¨μν¨λ€.
ex1) isFruit && !isSweet -> κ³ΌμΌμ΄λ©΄μ λ¬μ§ μμμΌ μ°Έ.
ex2) isFruit || !isVegetable -> κ³ΌμΌμ΄κ±°λ μ±μκ° μλμ΄μΌ μ°Έ. μ°ΈμΈλ? μ°ΈμΈλ‘λ€
μκ°νλ λΉκ΅ μ°μ°μ, λ
Όλ¦¬ μ°μ°μ λ§κ³ λ μ°μ μ°μ°μ, λ¬Έμμ΄ μ°μ°μ λ±λ± μ λ§ λ§μλ° μ λΆ μΈμ°κΈ° 보λ€λ μ΄ μλ¦λ€μ΄ μ¬μ΄νΈμ μμ£Ό λ°©λ¬Ένλ©΄μ λμ μ΅νλκ² λμ λ― νλ€.
κ·Έλ°λ° μ€λ 곡λΆνλ©΄μ λμ κ±°μ¬λ Έλ μ°μ°μ λͺ κ°μ§λ§ μΆκ°λ‘ μ 리νμλ©΄,
%λ λλ¨Έμ§ μ°μ°μμ΄λ€. μ°μ μ°μ°μ μ€ νλμ΄λ©° λλκ³ λ¨μ κ°μ μΆλ ₯νλ€.
ex) console.log(54 % 10) // 4
++λ μ¦κ° μ°μ°μμ΄λ€. μμ μ°μ μ°μ°μ μ€ νλμ΄λ©°, κ²°κ³Όμ μΌλ‘ κ°μ 1μ λνλ μν μ νλ€.
κ°μ λ°νμν¬λ μ«μ μμ ++κ° μ€λλ λ€μ μ€λλμ λ°λΌμ μΆλ ₯μ΄ λ¬λΌμ§λλ°, μ μν(++i)μΌλλ 1 λν κ°μ λ°λ‘ λ€μ μ½λλΆν° μ¬μ©νκ³ , νμν(i++)μΌλλ λ°νλκΈ° μ κΉμ§λ κΈ°μ‘΄ κ°μΌλ‘ μ¬μ©νλ€κ° λ€μ λμκ°μ μ½λνκ³ λ΄λ €μ¬λ 1 λν κ°μΌλ‘ μ¬μ©νλ€.
let i = 0;
while(i<10){
console.log(i);
i++;
}
// μ΄ κ²½μ° iκ° 0~9κΉμ§ μΆλ ₯νκ³ μΆλ ₯λ μ΅μ’
i κ°μ 9μ΄λ€.
// μ¦κ° μ°μ°μλ‘ 10μ΄ λ κ²μ λ§μ§λ§, νμνμ΄λ―λ‘ κΈ°μ‘΄ κ°μ μΆλ ₯νκ³ νμ¬ κ°μ μ½λ μλ‘ μ¬λΌκ°μ λͺ» λ΄λ €μ€κΈ° λλ¬Έ.
let i = 0;
while(i<10){
console.log(i);
++i;
}
// μ΄ κ²½μ° iλ 0~9κΉμ§ μΆλ ₯νκ³ μ½μ μμ μ΅μ’
i κ°μ 10μ΄λ€.
// μΆλ ₯νλ λ¨κ³κ° ν΄λΉ μ½λλ₯Ό μ§λ λ€μ μ½λλΆν° iλ 10μ΄ λμκΈ° λλ¬Έ.
μκΈ° λκ°μ λ°λ³΅λ¬Έμμ λ λ€ i = 10 μ΄λ€.
?λ μΌν μ°μ°μμ΄λ€. 쑰건(μΌν) μ°μ°μ μ€ νλμ΄λ©° 쑰건 ? κ°1 : κ°2μμ μ‘°κ±΄μ΄ μ°Έμ΄λ©΄ κ°1λ₯Ό κ°μΌλ‘, κ±°μ§μ΄λ©΄ 쑰건2λ₯Ό κ°μΌλ‘ κ°μ§λ€.
ex) let grade = (score >= 60) ? "pass" : "fail"; // μ μ(score)κ° 60μ μ΄μμ΄λ©΄ passλ₯Ό λ±κΈμ κ°μΌλ‘, 60μ λ―Έλ§μ΄λ©΄ failμ λ±κΈμ κ°μΌλ‘ κ°μ§λ€.
ννμμ΄ μλ λ¬Έλ² κ΅¬μ‘°(continue, breakλ±)μλ μΌν μ°μ°μλ₯Ό μ¬μ©ν μ μλ€.
κ·Έλ κΈ°μ μΌν μ°μ°μλ₯Ό ifλ¬Έ λμ μ¬μ©νλ κ²μ μ§μνλκ² μ’λ€.
Truthyλ μ°Έ κ°μ κ°, Falsyλ κ±°μ§ κ°μ κ°μ΄λ€.
6κ°μ§ κΈ°μ΅ν΄μΌν falsy κ°μ΄ μλλ°,
false, null, undefined, 0, NaN, ''(λΉ String) μ΄ κ·Έκ²μ΄λ€.
falsyμ λ°λ κ°μ true κ°μ΄λ©° truthy μ λ°λ κ°λ falseμ΄λ€.
(!falsy === true) = true, (!truthy === false) = true
μ€λ μ²μ νμ΄λ§ νμλλ°, 첫 νμ΄ λΆμ΄ μ’μ λΆμ΄λΌ κΈ°λΆμ΄ μ’λ€.
μ€λ λ°°μ΄ κ²μ λ€ λ³΅μ΅νλ€! λ΄μΌ μΌμ΄λλ©΄ κΉλ¨Ήμ λ―
μνμ½λ©.JS λλ΄λ €κ³ νλλ° ν¨μνλ©΄ νμλ‘ λκ° λ§μ΄ λμμ κ°μ²΄λ λ보μ§λ λͺ»νλ€.
μ½νλ¦Ώ λ¬Έμ μ λΉν΄ νμ΄λ§ ν λΉμκ°μ΄ λ무 κΈΈμ΄μ 빨리 λλ΄κ³ μ‘°κΈ μ€λ€. 컀νΌκ° μ λ€μ΄
λ΄μΌ μμΉ¨ 쑰건문 λ€μ νλ² λ³΅μ΅, λλ΄κ³ λ¬Έμμ΄ κ³΅λΆνκΈ°.
λ€λ₯Έ λκΈ° λΆλ€μ μκ°μ΄ λ§μ΄ λ¨μλ€κ³ νμ
¨λλ° λλ μλ£ μ°Ύκ³ μ¬λ¬κ° λ³Έλ€κ³ μκ°μ΄ μ’ λΆμ‘±νλ€. λ°₯λ 15λΆ λ λ¨Ήμμ΄
μ½νλ¦Ώνλλ° μ΄λ¦¬λ²λ¦¬κΉμ μ‘°κΈ λ¨Έμ±νλ€.
ν¨μμμ 리ν΄ν΄μΌνλλ° μλ±ν κ°μ μκΎΈ μ§μ΄λ£μ΄μ νμ΄λμ λΉν©μμΌ°λ€π
λ΄μΌμ μ΄λ¦¬λ²λ¦¬κΉμ§λ§κ³ λ μ§μ€νκ³ λ μ΄μ¬ν 곡λΆνμ.
λΈλ‘κΉ
νλλ° λλ΅ 2μκ° 30λΆ..
μ§κΈ λ°°μ΄κ² λ³λ‘ μλλ°λ μ΄ μ λλ©΄ μ¬ν κ³€λν΄μ§λ― νλ€ π€
볡μ΅νλ건 μ’μ§λ§ μ΄λ° λ°©μμ λΈλ‘κΉ
μ΄ λ§λ λ°©μμΌμ§ κ³ λ―Όν΄λ΄μΌκ² λ€.
https://developer.mozilla.org/
https://ko.javascript.info/
https://poiemaweb.com/
https://opentutorials.org/
https://www.zerocho.com/
μ λ°° κ°λ°μλλ€ κ·Έλμ λ°μ΅λλ€