πββοΈ λ³μ(Variable)λ,
νλ‘κ·Έλ¨μ΄ μ€νλ λ μ μ¬μ μΌλ‘ λ³κ²½ λ μμλ λͺ λͺ λ κ°
πβ μ κΉ ! μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ μ λ¬΄μ¨ νΉμ§μ΄ μλμ?
μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ μ ν¬κ² μμ νμ , κ°μ²΄ νμ μΌλ‘ λΆλ₯
- μμ νμ : number, string, boolean, undefined, null, symbol
- κ°μ²΄ νμ : μ 6κ°μ§ μ΄μΈμ λͺ¨λ νμ (κ°μ²΄, ν¨μ, λ°°μ΄ λ±)
μ«μ νμ μ λͺ¨λ μ€μλ‘ μ²λ¦¬
var integer = 10;
var double = 5.5;
var negative = -10;
console.log(10 == 10.0); // true
console.log(10 / 4); // 2.5 μΆλ ₯ (μ€μλΌλ¦¬μ λλκΈ°μ΄λ―λ‘ μμμ κΉμ§ μ²λ¦¬)
var string;
string = 'JavaScript'; // νλ°μ΄ν
string = "JavaScript"; // μλ°μ΄ν
string = `JavaScript`; // λ°±ν±
string = 'μμ λ°μ΄νλ‘ κ°μΌ λ¬Έμμ΄ λ΄μ "ν° λ°μ΄ν"λ λ¬Έμμ΄λ‘ μΈμ';
string = "ν° λ°μ΄νλ‘ κ°μΌ λ¬Έμμ΄ λ΄μ 'μμ λ°μ΄ν'λ λ¬Έμμ΄λ‘ μΈμ";
πββοΈ ν νλ¦Ώ 리ν°λ΄μ΄λ,
ES6λΆν° λμ λ λ©ν°λΌμΈ λ¬Έμμ΄, ννμ μ½μ λ± νΈλ¦¬ν λ¬Έμμ΄ μ²λ¦¬ κΈ°λ₯μ μ 곡νλ λ¬Έμμ΄ νκΈ°λ²
// var str = 'μλ
νμΈμ.
// λ°κ°μ΅λλ€';
var str = 'μλ
νμΈμ.\nλ°κ°μ΅λλ€.';
// μ΄μ€μΌμ΄ν μνμ€λ₯Ό μ¬μ©ν΄μΌλ§ κ°λ₯
var multiline = `μλ
νμΈμ.
λ°κ°μ΅λλ€.
μ μ΄λ¦μ ν¨μ°μ
λλ€.`
console.log(multiline); // κ°νμ΄ κ·Έλλ‘ μΆλ ₯
var lastName = 'μ‘°';
var firstName = 'ν¨μ°';
// λ¬Έμμ΄μ λ¬Έμμ΄ μ°μ°μ '+'λ₯Ό μ¬μ©ν΄ μ°κ²°
console.log('μ Full Nameμ ' + lastName + firstName + 'μ
λλ€.');
// ννμ μ½μ
μ μ΄μ©νλ©΄ λ¬Έμμ΄ μ°μ°μλ³΄λ€ κ°λ
μ± μ’κ³ κ°νΈνκ² λ¬Έμλ₯Ό μ‘°ν© κ°λ₯
console.log(`μ Full Nameμ ${lastName}${firstName}μ
λλ€.`); // μμ λμΌν μΆλ ₯ (λ°±ν±μ ν¨κ³Ό)
// ννμ μ½μ
μ λ°λμ λ°±ν± λ΄μμλ§ μ¬μ©
console.log('μ Full Nameμ ${lastName}${firstName}μ
λλ€.'); // κ·Έλλ‘ μΆλ ₯
μλ°μ λμΌν μ±μ§
var flag = true;
console.log(flag);
flag = false;
console.log(flag);
// var undef = undefined; // κ°λ°μκ° μλμ μΌλ‘ λ³μμ ν λΉνλ κ²μ μ§μ
var undef; // μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ³μ μ΄κΈ°ν μ undefined μ¬μ©
console.log(undef);
// nullμ λ³μμ κ°μ΄ μλ€λ κ²μ μλμ μΌλ‘ λͺ
μν λ μ¬μ©
var nullVal = 'something';
nullVal = null; // μ΄μ μ°Έμ‘°κ° μ κ±°λμ΄ λ μ΄μ 'something'μ μ°Έμ‘° X
console.log(nullVal);
πββοΈ symbolμ΄λ,
λ€λ₯Έ κ°κ³Ό μ€λ³΅ λμ§ μλ μ μΌλ¬΄μ΄ν κ°μΌλ‘ μ΄λ¦ μΆ©λ μνμ΄ μλ κ°μ²΄μ μ μΌν νλ‘νΌν°
- ν€ κ°μ λ§λ€κΈ° μν΄ μ¬μ©
- μ¬λ³Ό μΈμ μμ κ°μ 리ν°λ΄μ ν΅ν΄ μμ±, μ¬λ³Όμ Symbolν¨μλ₯Ό ν΅ν΄ νΈμΆνμ¬ μμ±
typeof
: λ³μμ μλ£νμ νμΈν λ μ¬μ©
// μ¬λ³Ό μμ±
var key = Symbol('key');
console.log(typeof key); // symbol μΆλ ₯
// κ°μ²΄ μμ±
var obj = {};
obj[key] = 'value'; // μ¬λ³Ό keyμ valueλΌλ λ¬Έμμ΄μ λ΄μ
console.log(obj[key]); // value μΆλ ₯
πββοΈ λμ νμ μΈμ΄μ΄λ,
λ°μ΄ν° νμ μ μ¬μ μ μ μΈνμ§ μλ κ²μ μλ―Ένλ©°, λ³μ μ μΈμ΄ μλλΌ ν λΉμ μν΄ νμ μ΄ κ²°μ λκ³ μ¬ν λΉμ μν΄ λμ μΌλ‘ λ³μμ νμ μ΄ λ³νν μ μμ
- JavaScriptλ λμ νμ μΈμ΄
var test;
console.log(typeof test); // undefined μΆλ ₯
test = 1;
console.log(typeof test); // number μΆλ ₯
test = "I'm Joy";
console.log(typeof test); // string μΆλ ₯
test = true;
console.log(typeof test); // boolean μΆλ ₯
test = null;
console.log(typeof test); // object μΆλ ₯
// μλ°μ€ν¬λ¦½νΈ 첫 λ²μ§Έ λ²μ μ λ²κ·Έμ΄μ§λ§ κΈ°μ‘΄ μ½λμ μν₯μ μ€ μ μμ΄ μμ§κΉμ§ μμ X
test = Symbol();
console.log(typeof test); // symbol μΆλ ₯
test = {}; // κ°μ²΄
console.log(typeof test); // object μΆλ ₯
test = []; // λ°°μ΄
console.log(typeof test); // object μΆλ ₯
test = function(){}; // ν¨μ
console.log(typeof test); // function μΆλ ₯
λ¬Έμμ΄ νμ μ΄ μλ νΌμ°μ°μλ₯Ό λ¬Έμμ΄ νμ μΌλ‘ λ³ν
console.log(10 + '20');
ννμμ κ²°κ³Όλ₯Ό λ¬Έμμ΄ νμ μΌλ‘ λ³ν
console.log(`10 + 20 : ${10 + 20}`);
console.log(1 + '');
console.log(NaN + '');
console.log(Infinity + '');
console.log(true + '');
console.log(null + '');
console.log(undefined + '');
// console.log(Symbol() + '');
// Cannot convert a Symbol value to a string (Symbolμ λ¬Έμμ΄λ‘ λ³ν λΆκ°λ₯)
console.log({} + ''); // κ°μ²΄ - "[object Object]"
console.log([] + ''); // λ°°μ΄ - ""
console.log(function(){} + ''); // ν¨μ - "function(){}"
μ°μ μ°μ°μμ νΌμ°μ°μλ λͺ¨λ μ«μμ¬μΌ νλ―λ‘ μ«μκ° μλ νΌμ°μ°μλ₯Ό μ«μ νμ
μΌλ‘ λ³ν
NaN
: Not a Number
console.log(10 - '5');
console.log(10 * '5');
console.log(10 / '5');
console.log(10 % 'JavaScript'); // NaN
// νΌμ°μ°μλ₯Ό μ«μλ‘ λ³ν λΆκ° (μ°μ° μν λΆκ°)
λΉκ΅ μ°μ°μλ‘ ν¬κΈ°λ₯Ό λΉκ΅νλ €λ©΄ λͺ¨λ μ«μ νμ
μ΄μ¬μΌ νλ―λ‘ μ«μκ° μλ νΌμ°μ°μλ₯Ό μ«μ νμ
μΌλ‘ λ³ν
isNaN()
: NaNμ λΉκ΅μ°μ°μ(==)λμ isNaNμΌλ‘ νμΈ
console.log(10 > '5');
console.log(10 > '20');
console.log(`10 > 'a' : ${10 > 'a'}`);
// λ¬Έμλ λͺ¨λ NaNμΌλ‘ λ³νλκΈ° λλ¬Έμ NaNμ λΉκ΅ μ°μ°μμμ μ΄λ€ κ°κ³Όλ λΉκ΅ λΆκ°λ₯
// λ°λΌμ νμ falseλ₯Ό λ°ν
/* μ°Έκ³ */
console.log(`NaN == NaN : ${NaN == NaN}`); // false
console.log(`isNaN(NaN) : ${isNaN(NaN)}`); // true
console.log(+''); // 0
console.log(+'1'); // 1
console.log(+'JavaScript'); // NaN
console.log(+true); // 1
console.log(+false); // 0
console.log(+null); // 0
console.log(+undefined); // NaN
//console.log(+Symbol()); // Cannot convert a Symbol value to a number
console.log(+{}); // NaN
console.log(+[]); // 0
console.log(+function(){}); // NaN
π Ref.
π₯μ€μπ₯
* λΉ λ¬Έμμ΄, λΉ λ°°μ΄, null, falseλ 0μΌλ‘ λ³ν
* trueλ 1λ‘ λ³νλλ€.
* κ°μ²΄μ undefined, ν¨μλ λ³νλμ§ μμ NaNμ΄ λ°ν
πββοΈ JavaScript μμ§μ boolean νμ μ΄ μλ κ°μ Truthy κ°(μ°ΈμΌλ‘ νκ°λλ κ°) λλ Falsy κ°(κ±°μ§μΌλ‘ νκ°λλ κ°)μΌλ‘ ꡬλΆ
- Truthy π true | Falsy π falseλ‘ μ묡μ νμ λ³ν
if(undefined) console.log("if(undefined)"); // false
if(null) console.log("if(null)"); // false
if(0) console.log("if(0)"); // false
if(1) console.log("if(1)"); // true => μ μ μΆλ ₯
if(NaN) console.log("if(NaN)"); // false
if('') console.log("if('')"); // false
if('JavaScript') console.log("if('JavaScript')"); // true => μ μ μΆλ ₯
π Ref.
π₯μ€μπ₯
* false, undefined, null, 0, NaN, ''(λΉ λ¬Έμμ΄)μ Falsy κ°
* μ΄ μΈμ λͺ¨λ κ°λ€μ Truthy κ°
console.log(String(10));
console.log(String(NaN));
console.log(String(Infinity));
console.log(String(true));
console.log(String(false));
console.log((10).toString());
console.log((NaN).toString());
console.log((Infinity).toString());
console.log((true).toString());
console.log((false).toString());
console.log(Number('10'));
console.log(Number('10.01'));
console.log(Number(true)); // 1
console.log(Number(false)); // 0
λ¬Έμμ΄ π μ«μλ§ κ°λ₯
console.log(parseInt('10'));
console.log(parseFloat('10'));
console.log(parseInt('10.01'));
console.log(parseFloat('10.01'));
console.log('10' * 1);
console.log('10.01' * 1);
console.log(true * 5); // 5
console.log(false * 5); // 0
console.log(Boolean('JavaScript')); // true
console.log(Boolean('')); // false
console.log(Boolean(1)); // true
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(Infinity)); // true
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean({})); // true
console.log(Boolean([])); // true
console.log(!!'JavaScript'); // true
console.log(!!''); // false
console.log(!!1); // true
console.log(!!0); // false
console.log(!!NaN); // false
console.log(!!Infinity); // true
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!{}); // true
console.log(!![]); // true