JABASCRIPT BASIC
λ³μ
scope
function test(){
var message = "hi"; // μ§μλ³μ
}
test();
alert(message); // μ€λ₯ λ°μ
VM3067:5 Uncaught ReferenceError: message is not defined
at <anonymous>:5:7
var
μ°μ°μλ λ³μλ₯Ό λ‘컬 μ€μ½νμμ μ μνλ€λ μ μ λ°λμ κΈ°μ΅ν΄μΌνλ€. var
ν€μλλ₯Ό μ¨μ λ³μλ₯Ό μ μνλ©΄ ν΄λΉ λ³μλ μμ κ°μ΄ ν¨μκ° μ’
λ£λλ μκ° νκ΄΄λλ€.
function test(){
message = "hi"; // μ μλ³μ
}
test();
alert(message); //"hi"
var
μ°μ°μλ₯Ό μλ΅νλ κ²½μ°μλ λ³μλ₯Ό μ μμΌλ‘ μ μν μ μλ€.
λ°μ΄ν° νμ ECMAScriptμλ λ€μ― κ°μ§ κΈ°λ³Έμ μΈ λ°μ΄ν° νμ μ΄ μλ€. μ΄λ₯Ό primitive(μμ) λ°μ΄ν° νμ μ΄λΌ λΆλ₯΄κΈ°λνλ€.
Undefined
Null
Boolean
number
string
볡μ‘ν λ°μ΄ν° νμ
object : ν¨μλ₯Ό μ μΈν κ°μ²΄ or null
function : ν¨μ
μμ λ€μ― κ°μ§κ° μ΄μ ν΄λΉλλ€.
undefined
undefined
λ var
λ₯Ό μ¨μ λ³μλ₯Ό μ μνμ§λ§ μ΄κΈ°ν νμ§μμ κ²½μ°μ΄λ€.
var message;
console.log(message); //=> undefined
κΈ°λ³Έμ μΌλ‘ μ΄κΈ°ννμ§ μμ λ³μμλ νμ undefined
κ° ν λΉλλ€.
var message; // undefined
console.log(message); // "undefined"
console.log(age); // μ€λ₯
Uncaught ReferenceError: age is not defined
at <anonymous>:1:13
undefined κ°μ΄ ν λΉλ λ³μμ μ μλμ§ μμ λ³μλ₯Ό ꡬλΆν μ μμ΄μΌνλ€. μμ§ μ μν μ μλ λ³μμ μ€νν μ μλ μ‘°μ μ typeof
λΏμ΄λ€.
var message;
typeof message
"undefined"
typeof age; // "undefined"
Null
Null νμ
μμ κ° νλλ§μ κ°λλ€. null
μ λΉ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ ν¬μΈν°μ΄λ―λ‘ typeof
λ₯Ό νΈμΆνλ©΄ object
λ₯Ό λ°ννλ€.
var a = null;
typeof(a); // "object"
λ³μ μ μμμ ν΄λΉ λ³μκ° κ°μ²΄λ₯Ό κ°λ¦¬ν€κ² ν κ²μ΄λΌλ©΄ nullλ‘ μ΄κΈ°ννλ κ²μ κΆμ₯νλ€.
console.log(null == undefined) // true
undefined
λ null
μμ νμνμΌλ―λ‘ νλ©΄μ μΌλ‘ λμΌν κ²μΌλ‘ μ μνλ€. null
κ³Ό undefined
λ μλ‘ κ΄λ ¨μμ§λ§ λ κ°μ μμ£Ό λ€λ₯΄κ² μ°μΈλ€. λ³μκ°μ λͺ
μμ μΌλ‘ undefined
λ₯Ό ν λΉν΄μλ μλμ§λ§, null
μ κ°μ²΄λ₯Ό μ¬μ©ν΄μΌνμ§λ§ ν΄λΉ κ°μ²΄λ₯Ό μ΄μ©ν μ μμ λ νμ null
μ΄ μμΌνλ€.
boolean
λ°μ΄ν° νμ
true
false
boolean
true
false
string
λΉμ΄μμ§μμ λ¬Έμμ΄ μ λΆ
""(λΉ λ¬Έμμ΄)
number
0μ΄ μλ λͺ¨λ μ«μ, 무νλ(Infinity) ν¬ν¨
0, NaN
object
λͺ¨λ κ°μ²΄
null
undefined
X(ν΄λΉμμ)
undefined
number
λΆλμμμ μ«μλ μμμ μλ 17μ리κΉμ§ μ ννμ§λ§ μ¬μΉμ°μ°μ μμ΄μλ λΆμ ννλ€.
a = 0.1
b = 0.2
a+b // 0.30000000000000004
console.log(a+b == 0.3) //=> false
0.1 + 0.2κ° 0.3μ΄ μλ 0.30000000000000004λ₯Ό λ°ννλ κ²μ λ³Ό μ μλ€. λ°λΌμ λΆλμμμ μ«μλ₯Ό λΉκ΅ν λλ μ΄λ¬ν λ²κ·Έλ₯Ό μΈμ§νκ³ λ€λ₯Έ λ°©λ²μ μ¨μΌνλ€.
Number.MIN_VALUE // 5e-324
Number.MAX_VALUE // 1.7976931348623157e+308
isFinite(123124124123123) // true
isFinite(Infinity) // false
μ΅μκ°κ³Ό μ΅λκ°μ MIN_VALUE, MAX_VALUEλ₯Ό ν΅ν΄μ μ μ μμΌλ©°, ν΄λΉ μ«μκ° μ ν¨ν λ²μμμ μλμ§λ isFinite()
ν¨μλ₯Ό μ¬μ©νλ©΄λλ€.
NaN
NaNμ Not a NumberμΌλ‘ μλν μ‘°μμ΄ μ€ν¨νμ λ λ°νλλ κ°μ΄λ€. NaNμ μ΄λ ν κ°λ μΌμΉνμ§ μμΌλ©°, NaNλΌλ¦¬λ μΌμΉνμ§ μλλ€.
console.log(NaN == NaN); // false
κ·Έλ¬λ―λ‘, isNaN()
ν¨μλ₯Ό λ°λ‘ μ 곡ν΄μ€λ€.
μμ κ°κ³Ό μ°Έμ‘° κ°
μλ°μ€ν¬λ¦½νΈ λ³μλ λ³μκ° κ°μ ΈμΌν λ°μ΄ν° νμ μ λν κ·μΉμ΄ μμΌλ―λ‘ λ³μμ κ°κ³Ό λ°μ΄ν° νμ μ μ€ν μ€μ λ°λ μ μλ€.
μμ κ°μ λ¨μν λ°μ΄ν°μ΄λ©°, μ°Έμ‘° κ°μ μ¬λ¬ κ°μΌλ‘ ꡬμ±λλ κ°μ²΄λ₯Ό κ°λ¦¬ν¨λ€. λ³μμ κ°μ ν λΉνλ©΄ μλ°μ€ν¬λ¦½νΈ μμ§μ ν΄λΉ κ°μ΄ μμ λ°μ΄ν°μΈμ§ μ°Έμ‘° λ°μ΄ν°μΈμ§ νλ¨νλ€.
μμνμ μ Undefined, Null, Boolean, μ«μ, λ¬Έμμ΄μ΄λ€. μ°Έμ‘° κ°μ λ©λͺ¨λ¦¬μ μ μ₯λ κ°μ²΄λ‘, μλ°μ€ν¬λ¦½νΈλ λ©λͺ¨λ¦¬ 곡κ°μ μ§μ μ‘°μνλ κ²μ΄ λΆκ°λ₯νλ©°, κ°μ²΄λ₯Ό μ‘°μν λλ μ¬μ€ ν΄λΉ κ°μ²΄μ λν μ°Έμ‘°λ₯Ό μ‘°μνλ κ²μ΄λ€.
λμ νλ‘νΌν°
μ°Έμ‘° κ°μ λ€λ£°λλ μΈμ λ νλ‘νΌν°μ λ©μλλ₯Ό μΆκ°νκ±°λ λ°κΎΈκ³ μμ ν μ μλ€.
var person = new Object();
person.name = "Faker";
console.log(person.name); // "Faker"
κ°μ²΄λ₯Ό μμ±ν ν νλ‘νΌν°λ₯Ό μΆκ°νλ€. μ΄ μμ λΆν° κ°μ²΄κ° νκ΄΄λκ±°λ νλ‘νΌν°λ₯Ό λͺ μμ μΌλ‘ μ κ±°νκΈ° μ κΉμ§λ ν΄λΉ νλ‘νΌν°μ μ κ·Όν μ μλ€.
var name = "Faker";
name.age = 24;
console.log(name.age); // undefined
μμκ°μλ νλ‘νΌν°κ° μμΌλ©°, μΆκ°νλ €ν΄λ μ€λ₯κ° λ°μνμ§λ μμ§λ§ λ°λ‘ μ¬λΌμ§λ€. λμ μΌλ‘ νλ‘νΌν°λ₯Ό μΆκ°ν μ μλ κ°μ μ°Έμ‘°κ° λΏμ΄λ€.
κ° λ³΅μ¬
μμ κ°μ λ€λ₯Έ λ³μλ‘ λ³΅μ¬ν λλ νμ¬ μ μ₯λ κ°μ μλ‘ μμ±ν λ€μ μλ‘μ΄ λ³μμ 볡μ¬νλ€.
var num1 = 4;
var num2 = num1;
console.log(num1 , num2); // 4 4
num1 = 5;
console.log(num1 , num2); // 5 4
μ¬κΈ°μ 볡μ¬λ κ° num2λ num1μ μ μ₯λ κ°κ³Όλ μμ ν λΆλ¦¬λμ΄μλ κ²μ νμΈν μ μλ€.
μ°Έμ‘° κ°μ κ°μ²΄λ₯Ό 볡μ¬νλ©΄ κ·Έ κ°μ΄ κ°μ²΄ μμ²΄κ° μλλΌ νμ μ μ₯λ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ ν¬μΈν°μ΄λ€.
var obj = Object();
var obj2 = obj;
obj.name = "Faker";
console.log(obj2.name);
obj2.name = "Clid";
console.log(obj.name);
λ€μκ³Ό κ°μ΄ κ°μ²΄λ₯Ό μ‘°μνλ©΄ λ€λ₯Έ κ°μ²΄μλ μν₯μ΄ κ°λ κ²μ νμΈν μ μλ€.
λ§€κ°λ³μ
ECMAScriptμ ν¨μ λ§€κ°λ³μλ λͺ¨λ κ°μΌλ‘ μ λ¬λλ€. ν¨μ μΈλΆμ μλ κ°μ ν¨μ λ΄λΆμ λ§€κ°λ³μμ 볡μ¬λλλ°, μ΄λ λ³μμ κ°μ 볡μ¬νλ κ²κ³Ό κ°λ€. λ³μλ κ°μΌλ‘λ, μ°Έμ‘°λ‘λ μ κ·Όκ°λ₯νμ§λ§ λ§€κ°λ³μλ μ€μ§ κ°μΌλ‘λ§ μ λ¬λλ€.
function addTen(num){
// μ¬κΈ°μ λ§€κ°λ³μ numμ μ§μλ³μμ΄λ€.
num += 10;
return num;
}
var count = 20;
var result = addTen(count);
console.log(count); // 20
console.log(result); // 30
function setName(obj){
obj.name = "Faker";
}
var person = new Object();
setName(person);
console.log(person);
[object Object] {
name: "Faker"
}
objλ ν¨μμ κ° ννλ‘ μ λ¬λμμ§λ§, μ°Έμ‘°λ₯Ό ν΅ν΄μ κ°μ²΄μ μ κ·Όνλ€. ν¨μ λ΄λΆμμ objμ name νλ‘νΌν°λ₯Ό μΆκ°νλ©΄ ν¨μ μΈλΆμμλ λ°μλλλ° objκ° κ°λ¦¬ν€λ κ²μ νμ μ‘΄μ¬νλ μ μ κ°μ²΄μ΄κΈ° λλ¬Έμ΄λ€.
function setName2(obj){
obj.name = "Faker";
obj = new Object();
obj.name = "Greg";
}
var person2 = new Object();
setName2(person2);
console.log(person2);
[object Object] {
name: "Faker"
}
λ§μ½ person2κ° μ°Έμ‘°λ‘ μ λ¬λμλ€λ©΄, person2μ name νλ‘νΌν° κ°μ Gragλ‘ λ³κ²½λμ΄μΌνμ§λ§ "Faker"κ·Έλλ‘μ΄λ€. ν¨μμ κ°μ μ λ¬νκΈ°λλ¬Έμ ν¨μ λ΄λΆμμ λ§€κ°λ³μμ κ°μ΄ λ°λμμμλ λΆκ΅¬νκ³ μλ κ°μ²΄μ λν μ°Έμ‘°λ₯Ό κ·Έλλ‘ μ μ§ν κ²μ΄λ€. ν¨μ λ΄λΆμμ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±νλ©΄, objλ μ§μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ ν¬μΈν°κ° λλ©°, μ΄ μ§μ κ°μ²΄λ ν¨μκ° μ€νμ λ§μΉλ μκ° μ¦μ νκ΄΄λλ€.
νμ
νλ³
typeof
μ°μ°μλ λ³μκ° μμ νμ
μΈμ§ νμ
νκΈ°μ μ΅μμ΄μ§λ§, μ°Έμ‘°κ°μ λν΄μλ νλ³νκΈ° μ΄λ ΅λ€. μ΄λ¬ν κ²½μ°μ instanceof
λ₯Ό μ¬μ©νλ©΄λλ€.
variable instanceof constructor
console.log(person instanceof Object); // true
λͺ¨λ μ°Έμ‘° κ°μ Objectμ μΈμ€ν΄μ€μΈ κ²μΌλ‘ μ μλμ΄ μμΌλ―λ‘ νμ trueλ₯Ό λ°ννλ€.
μ°μ°μ
μΌμΉ/λΆμΌμΉ vs λμΌ/λΉλμΌ μ°μ°μ
λμΌ(==
)/λΉλμΌ(!=
) μ°μ°μμ μΌμΉ(===
)/λΆμΌμΉ(!==
) μ°μ°μλ κ°μ μΌμνμ§λ§ μΌμΉ, λΆμΌμΉ μ°μ°μλ νΌμ°μ°μμ νμ
μ λ³ννμ§ μκ³ κ·Έλλ‘ λΉκ΅νλ€.
console.log("55"==55); // true
console.log("55"===55); // false
λμΌ μ°μ°μ(==
)λ λ¬Έμμ΄μ μ«μλ‘ λ³νν λ€μ λΉκ΅λ₯Ό νλ―λ‘ λ κ°μ΄ λμΌνλ€κ³ λ³Έλ€. νμ§λ§ μΌμΉ μ°μ°μ(===
)λ λ³ννμ§ μμ μνμμ λΉκ΅νλ―λ‘ μΌμΉνμ§ μλ€κ³ λ°ννλ€.
console.log(undefined == null); // true
console.log(undefined === null); // false
ν¨μ
ECMAScript ν¨μλ λ§€κ°λ³μ μ«μλ₯Ό λ°μ§μ§ μμΌλ©° λ°μ΄ν° νμ
λ 체ν¬νμ§ μλλ€. ν¨μμμ λ§€κ°λ³μλ₯Ό λ κ° λ°λλ‘ λ§λ€μλλΌλ λ°λμ λ§€κ°λ³μ λ κ°λ₯Ό λ겨μΌνλ 건 μλλ€. ECMAScriptμ λ§€κ°λ³μκ° λ΄λΆμ μΌλ‘λ λ°°μ΄λ‘ ννλκΈ° λλ¬Έμ΄λ€. μ΄ λ°°μ΄μ νμ ν¨μμ μ λ¬λμ§λ§ ν¨μλ λ°°μ΄μ μ΄λ€ κ°μ΄ λ€μ΄μλμ§ μ²΄ν¬νμ§ μλλ€. ν¨μλ arguments
λΌλ κ°μ²΄λ₯Ό ν΅ν΄μ λ§€κ°λ³μ κ°μ μ κ·Όν μ μλ€.
function sayHi(){
console.log(arguments);
}
sayHi('test1','1234', '25');
[object Arguments] {
0: "test1",
1: "1234",
2: "25"
}
argumentsλ μΈλ±μ€ κ°μΌλ‘ μ κ·Όν μ μλ€.
ECMAScript ν¨μμλ λ€λ₯Έ μΈμ΄μμ μ¬μ©νλ μ€λ²λ‘λ©μ΄ μλ€.κ°μ μ΄λ¦μΌλ‘ ν¨μλ₯Ό μ¬λ¬ λ² μ μνλ©΄ λ§μ§λ§ ν¨μκ° ν λΉλλ€.
Last updated
Was this helpful?