μ΄ κΈμ κ³ νμ€, μ‘νμ£Ό λμ μΈμ¬μ΄λ μλ°μ€ν¬λ¦½νΈλ₯Όμ°Έμ‘°νμ¬ μμ±ν κΈμ λλ€.
#
νλ‘ν νμμλ°μ€ν¬λ¦½νΈμ λͺ¨λ κ°μ²΄λ μμ μ λΆλͺ¨ μν μ νλ κ°μ²΄μ μ°κ²°λμ΄ μλ€. (κ°μ²΄μ§ν₯μ μμ κ°λ κ³Ό λΉμ·)
λΆλͺ¨ κ°μ²΄μ μμ±μ μμ μ κ²μ²λΌ μΈ μ μλ€.
var foo = { name: 'foo', age: 30,};
console.log(foo.toString());console.dir(foo);
[μΆλ ₯ κ²°κ³Ό]
μμ±ν foo
κ°μ²΄μλ toString()
λ©μλκ° μμμλ μλ¬κ° λ°μνμ§ μλλ°, μ΄λ foo
κ°μ²΄μ νλ‘ν νμ
μ toString()
λ©μλκ° μ μλμ΄ μκΈ° λλ¬Έμ΄λ€.
μλ°μ€ν¬λ¦½νΈμ λͺ¨λ κ°μ²΄λ μμ μ νλ‘ν νμ
μ κ°λ¦¬ν€λ [[Prototype]]
λΌλ μ¨κ²¨μ§ νλ‘νΌν°λ₯Ό κ°μ§λ€.
ν¬λ‘¬ λΈλΌμ°μ μμλ __proto__
κ° μ¨κ²¨μ§ [[Prototype]]
νλ‘νΌν°λ₯Ό μλ―Ένλ€.
μ°μ μ Object.prototype κ°μ²΄κ° μμ±λ κ°μ²΄μ νλ‘ν νμ κ°μ²΄κ° λλ€λ κ²λ§κΈ°μ΅νκ³ λμ΄κ°μ.
λν κ°μ²΄λ₯Ό μμ±ν λ κ²°μ λ νλ‘ν νμ κ°μ²΄λ μμμ λ€λ₯Έ κ°μ²΄λ‘ λ³κ²½νλ κ²λκ°λ₯νλ€.
(μ΄λ₯Ό ν΅ν΄ κ°μ²΄μ μμ λ±μ κΈ°λ₯μ ꡬννλ€.)
#
λ°°μ΄λ°°μ΄μ μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ νΉλ³ν ννμ΄λ€.
Cλ Javaμ λ°°μ΄κ³Ό κ°μ κΈ°λ₯μ νλ κ°μ²΄μ§λ§ ν¬κΈ°λ₯Ό λ°λ‘ μ§μ νμ§ μμλ λκ³ , μ΄λ€ μμΉμ μ΄λ νμ
μ λ°μ΄ν°λ₯Ό μ μ₯νλλΌλ μλ¬κ° λ°μνμ§ μλλ€. ex) var arr = [ 1, '2', true, 1.1, 'μλ
νμΈμ', [1, 2, 3, 4]];
#
λ°°μ΄ λ¦¬ν°λ΄κ°μ²΄ 리ν°λ΄μ΄ μ€κ΄νΈ {}
λ₯Ό μ΄μ©ν νκΈ°λ²μ΄μλ€λ©΄, λ°°μ΄ λ¦¬ν°λ΄μ λκ΄νΈ []
λ₯Όμ΄μ©νλ€.
κ°μ²΄ 리ν°λ΄μ key: value
μμΌλ‘ νλ‘νΌν°μ μ΄λ¦κ³Ό νλ‘νΌν°μ κ°μ λͺ¨λ νκΈ°ν΄μΌ νμ§λ§, λ°°μ΄μ κ° μμμ κ°λ§μ ν¬ν¨νλ€.
κ°μ²΄κ° νλ‘νΌν°μ μ΄λ¦μΌλ‘ λκ΄νΈλ λ§μΉ¨ν νκΈ°λ²μΌλ‘ νλ‘νΌν°μ μ κ·Όνλ€λ©΄, λ°°μ΄μ λκ΄νΈ λ΄μ μΈλ±μ€ κ°μ λ£μ΄μ μ κ·Όνλ€.
#
λ°°μ΄μ μμ μμ±κ°μ²΄κ° λμ μΌλ‘ νλ‘νΌν°λ₯Ό μΆκ°ν μ μλ―μ΄, λ°°μ΄λ λμ μΌλ‘ μμλ₯Ό μΆκ°ν μ μλ€. νΉν μλ°μ€ν¬λ¦½νΈμ κ²½μ°λ κ°μ μμ°¨μ μΌλ‘ λ£μ νμ μμ΄ μ무 μΈλ±μ€ μμΉμλ λμ μΌλ‘ μΆκ°ν μ μλ€.
var emptyArr = [];console.log(emptyArr[0]);
emptyArr[0] = 100;emptyArr[3] = 'eight';emptyArr[7] = true;console.log(emptyArr);console.log(emptyArr.length);
length
νλ‘νΌν°#
λ°°μ΄μ μλ°μ€ν¬λ¦½νΈμ λͺ¨λ λ°°μ΄μ length
νλ‘νΌν°κ° μλ€.
length
νλ‘νΌν°λ λ°°μ΄μ κ°μ₯ ν° μΈλ±μ€μ 1μ λν κ°μ΄λ€. (μμ κ°μμ μΌμΉνλ κ²μ΄ μλ)
var arr = [];console.log(arr.length); // 0
arr[0] = 0;arr[1] = 1;arr[2] = 2;arr[100] = 100;console.log(arr.length); // 101
arr
μ μμ κ°μκ° 4κ° λΏμ΄μ§λ§,arr.length
μ κ°μ 101μ.
λ°°μ΄μ length
νλ‘νΌν°λ μ½λλ₯Ό ν΅ν΄ λͺ
μμ μΌλ‘ κ°μ λ³κ²½ν μλ μλ€.
var arr = [0, 1, 2];console.log(arr.length); // 3
arr.length = 5;console.log(arr); // [0, 1, 2, undefined, undefined]
arr.length = 2;console.log(arr); // [0, 1]console.log(arr[2]); // undefined
arr.length
λ₯Ό κΈ°μ‘΄ length
λ³΄λ€ ν¬κ² λ³κ²½νλ©΄ μμκ° ν λΉλμ§ μμλ μΈλ±μ€λ undefined
λ‘ μΆλ ₯λκ³ , λν κΈ°μ‘΄ length
λ³΄λ€ μκ² λ³κ²½νλ©΄ ν λΉλμλ μΈλ±μ€κ° μμ λλ€.
length
νλ‘νΌν°#
λ°°μ΄ νμ€ λ©μλμ μλ°μ€ν¬λ¦½νΈλ λ°°μ΄μμ μ¬μ©κ°λ₯ν λ€μν νμ€ λ©μλλ₯Ό μ 곡νλλ°, μ΄λ¬ν λ°°μ΄ λ©μλλ length
νλ‘νΌν°λ₯Ό κΈ°λ°μΌλ‘ λμνκΈ° λλ¬Έμ length
νλ‘νΌν°κ° κ΅μ₯ν μ€μνλ€.
push()
λ©μλ : λ°°μ΄μ νμ¬length
κ°μ μμΉμ μλ‘μ΄ μμλ₯Ό μΆκ°νλ€.
arr.length
κ°μ λ³κ²½νλ©΄ λ³κ²½ν μμΉ λ€μ push()
λ₯Ό νκ² λλ€.
#
λ°°μ΄κ³Ό κ°μ²΄μλ°μ€ν¬λ¦½νΈμμλ λ°°μ΄ μμ κ°μ²΄μΈλ°, λ°°μ΄μ μΌλ° κ°μ²΄μ μ½κ° μ°¨μ΄κ° μλ°.
// colorsArray λ°°μ΄var colorsArray = ['orange', 'yellow', 'green'];console.log(colorsArray[0]); // orangeconsole.log(colorsArray[1]); // yellowconsole.log(colorsArray[2]); // green
// colorsObj κ°μ²΄var colorsObj = { 0: 'orange', 1: 'yellow', 2: 'green',};console.log(colorsObj[0]); // orangeconsole.log(colorsObj[1]); // yellowconsole.log(colorsObj[2]); // green
// typeof μ°μ°μ λΉκ΅console.log(typeof colorsArray); // objectconsole.log(typeof colorsObj); // object
// length νλ‘νΌν°console.log(colorsArray.length); // 3console.log(colorsObj.length); // undefined
// λ°°μ΄ νμ€ λ©μλcolorsArray.push('red');console.log(colorsArray); // ['orange', 'yellow', 'green', 'red']colorsObj.push('red'); // Uncaught TypeError: Object #<Object> has no method 'push'
- λ°°μ΄κ³Ό κ°μ²΄λ μ μ¬νκ² λ¦¬ν°λ΄ λ°©μμΌλ‘ μμ±ν μ μκ³ , κ²°κ³Όκ° μΆλ ₯κ³Ό νλ‘νΌν°μ κ·Ό λͺ¨λ λΉμ·νκ² ν μ μλ€.
κ°μ²΄μ νλ‘νΌν° μ κ·Όμμ νλ‘νΌν° μμ±μ λ¬Έμμ΄ ννλ‘ μ μ΄μΌ νλλ°, μλ°μ€ν¬λ¦½νΈ μμ§μ΄
[]
λ΄λΆμ μ«μκ° μ¬μ©λ κ²½μ°, μ«μλ₯Ό μλμΌλ‘ λ¬Έμμ΄ ννλ‘λ°κΎΈμ΄μ£Όμ΄ μ μμ μΌλ‘ μ κ·Όλ κ²μ λ³Ό μ μλ€.
typeof
μ°μ°μ κ²°κ³Όκ° λͺ¨λobject
μ΄λ€.κ°μ²΄μλ
length
νλ‘νΌν°κ° μλ€. (undefined
)κ°μ²΄μμλ λ°°μ΄ νμ€ λ©μλλ₯Ό νΈμΆν μ μλ€.
κ°μ²΄μ κ²½μ° κ°μ²΄ νμ€ λ©μλλ₯Ό μ μ₯νκ³ μλ
Object.prototype
κ°μ²΄κ° νλ‘ν νμ μΈ λ°λ©΄ λ°°μ΄μ κ²½μ°Array.prototype
κ°μ²΄κ° νλ‘ν νμ μ΄λ€. λνArray.prototype
μ νλ‘ν νμ μObject.prototype
κ°μ²΄μ΄λ€. λ°λΌμ λ°°μ΄μArray.prototype
μ ν¬ν¨λ λ°°μ΄ νμ€ λ©μλμObject.prototype
μ κ°μ²΄ νμ€λ©μλλ₯Ό λͺ¨λ μ¬μ©ν μ μλ€.
#
λ°°μ΄μ νλ‘νΌν° λμ μμ±λ°°μ΄λ μλ°μ€ν¬λ¦½νΈ κ°μ²΄λ‘, μΈλ±μ€κ° μ«μμΈ λ°°μ΄ μμ μ΄μΈμλ κ°μ²΄μ²λΌ λμ μΌλ‘νλ‘νΌν°λ₯Ό μΆκ°ν μ μλ€.
// λ°°μ΄ μμ±var arr = ['zero', 'one', 'two'];console.log(arr.length); // 3
// νλ‘νΌν° λμ μΆκ°arr.color = 'blue';arr.name = 'number_array';console.log(arr.length); // 3
// λ°°μ΄ μμ μΆκ°arr[3] = 'red';console.log(arr.length); // 4
// λ°°μ΄ κ°μ²΄ μΆλ ₯console.dir(arr);
[ console.dir(arr)
μΆλ ₯ κ²°κ³Ό]
λ°°μ΄λ κ°μ²΄μ²λΌ key: value
ννλ‘ λ°°μ΄ μμ λ° νλ‘νΌν°λ₯Ό κ°μ§ μ μλ€.
#
λ°°μ΄μ νλ‘νΌν° μ΄κ±°κ°μ²΄λ for in
λ¬ΈμΌλ‘ νλ‘νΌν°λ₯Ό μ΄κ±°νλλ°, λ°°μ΄λ κ°μ²΄μ΄λ―λ‘ for in
λ¬Έμ μ¬μ©νλ κ²μ΄ κ°λ₯νμ§λ§, λΆνμν νλ‘νΌν°κ° μΆλ ₯λ μ μμΌλ―λ‘ for
λ¬Έμ μ¬μ©νλ κ²μ΄ μ’λ€.
for of
λ¬Έfor in
μ κ°μ²΄μ λͺ¨λ μ΄κ±°κ°λ₯ν μμ±μ λν΄ λ°λ³΅νλ λ°λ©΄,for of
λ¬Έμ 컬λ μ μ μ©μΌλ‘[Symbol.iterator]
μμ±μ΄ μλ 컬λ μ μμμ λν΄ λ°λ³΅νλ€.
const iterable = [10, 20, 30];
for (const value of iterable) { console.log(value);}// 10// 20// 30
β μλ¬Έ : μ°Έμ‘° λ³μμ
let
,const
μ°¨μ΄ - π [javascript] ES6 λ°λμ μμμΌν λ¬Έλ² let, const μ°¨μ΄μ
κΈ°λ³Έ λ³μμΌ λ
let
: λ³μconst
: μμ
μ°Έμ‘° λ³μμΌ λ
let
: μ°Έμ‘°κ°μ΄ λ³ν μ μμ. (λ€λ₯Έ κ°μ²΄ μ§μ κ°λ₯)const
: μ°Έμ‘°κ°μ΄ λ³ν μ μμ. (λ΄λΆ μμ±μ λ³ν κ°λ₯)
const objA = {};let objB = {};
objA = objB; // Error: "objA" is read-onlyobjB = objA;
#
λ°°μ΄ μμ μμ λ°°μ΄λ κ°μ²΄μ΄λ―λ‘ λ°°μ΄ μμλ νλ‘νΌν°λ₯Ό μμ νλ λ° delete
μ°μ°μλ₯Ό μ¬μ©ν μμλ€.
var arr = ['zero', 'one', 'two', 'three'];delete arr[2];console.log(arr); // ['zero', 'one', undefined, 'three']console.log(arr.length); // 4
delete arr[2]
λ‘ λ°°μ΄μ μμλ₯Ό μμ νλ©΄, arr[2]
μ undefined
κ° ν λΉλκ²λμ§λ§, λ°°μ΄μ length
κ°μ λ³νμ§ μλλ€. μ¦ μμ μ체λ₯Ό μμ νμ§ μλλ€.
λλ¬Έμ λ°°μ΄μμ μμλ₯Ό μμ ν μμ ν κ²½μ° μλ°μ€ν¬λ¦½νΈμμλ splice()
λ°°μ΄ λ©μλλ₯Ό μ¬μ©νλ€.
splice()
ν¨μ#
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
맀κ°λ³μ
start
: λ°°μ΄μ λ³κ²½μ μμν μΈλ±μ€, λ°°μ΄μ κΈΈμ΄λ³΄λ€ ν° κ°μ΄λΌλ©΄ λ°°μ΄μ κΈΈμ΄λ‘ μ€μ λ¨. μμμΌ κ²½μ° λ°°μ΄μ λμμλΆν° μΈμ΄κ°κ³ , μ λκ°μ΄ λ°°μ΄μ κΈΈμ΄λ³΄λ€ ν°κ²½μ° 0μΌλ‘ μ€μ λ¨deleteCount
[μ΅μ λ] : λ°°μ΄μμ μ κ±°ν μμμ μ. 0μ΄λ©΄ μ΄λ€ μμλ μ κ±°νμ§μμ. (μλ‘μ΄ μμλ₯Ό μΆκ°ν λ μ¬μ©)item1, item2, ...
[μ΅μ λ] : λ°°μ΄μ μΆκ°ν μμ. μμΌλ©΄splice()
λ μμλ₯Όμ κ±°νκΈ°λ§ νλ€.
λ°ν κ°
- μ κ±°ν μμλ₯Ό λ΄μ λ°°μ΄, νλλ§ μ κ±°ν κ²½μ° κΈΈμ΄κ° 1μΈ λ°°μ΄μ λ°ν μ무 κ²λμ κ±°νμ§ μμΌλ©΄ λΉ λ°°μ΄.
Array()
μμ±μ ν¨μ#
μΌλ°μ μΈ λ¦¬ν°λ΄λ‘ μμ±νλ κ²λ κ²°κ΅ μμ±μ ν¨μλ‘ μμ±νλ κ³Όμ μ λ¨μνν κ²μ΄λ€.
Array()
μμ±μλ‘ μμ±ν λλ λ°λμ new
μ°μ°μλ₯Ό μ¨μΌνλ€λ κ²μ κΈ°μ΅νμ.
Array()
μμ±μ ν¨μλ νΈμΆν λ μΈμ κ°μμ λ°λΌ λμμ΄ λ€λ₯΄λ€.
νΈμΆν λ μΈμκ° μ«μ 1κ° μΌ κ²½μ° : νΈμΆλ μΈμλ₯Ό
length
λ‘ κ°λ λΉ λ°°μ΄ μμ±κ·Έ μΈ : νΈμΆλ μΈμλ₯Ό μμλ‘ κ°λ λ°°μ΄ μμ±
var foo = new Array(3);console.log(foo); // [undefined, undefined, undefined]console.log(foo.length); // 3
var bar = new Array(1, 2, 3);console.log(bar); // [1, 2, 3]console.log(bar.length); // 3
#
μ μ¬ λ°°μ΄ κ°μ²΄λ§μ½ μΌλ° κ°μ²΄μ length
λΌλ νλ‘νΌν°κ° μμΌλ©΄ μ΄λ»κ² λ κΉ? - μ΄λ¬ν κ°μ²΄λ₯Ό μ μ¬ λ°°μ΄ κ°μ²΄(array-like object) λΌκ³ νλ€.
μ μ¬ λ°°μ΄ κ°μ²΄λ κ°μ²΄μμλ λΆκ΅¬νκ³ νμ€ λ°°μ΄ λ©μλλ₯Ό μ¬μ©νλκ² κ°λ₯νλ€. ( apply()
λ©μλλ₯Ό μ¬μ©ν΄μΌ νλ€)
var arr = ['bar'];var obj = { name: 'foo', length: 1,};
arr.push('baz');console.log(arr); // ['bar', 'baz']
Array.prototype.push.apply(obj, ['baz']);console.log(obj); // { '1': 'baz', name: 'foo', length: 2}
arguments
κ°μ²΄λjQuery
κ°μ²΄κ° μ μ¬ λ°°μ΄ κ°μ²΄ ννλ‘ λμ΄ μλ€.
#
κΈ°λ³Έ νμ κ³Ό νμ€ λ©μλμλ°μ€ν¬λ¦½νΈλ μ«μ, λ¬Έμμ΄, Boolean
μ λν΄ κ° νμ
λ³λ‘ νΈμΆ κ°λ₯ν νμ€ λ©μλλ₯Ό μ μνκ³ μλ€.
κΈ°λ³Έ νμ μ κ²½μ°λ κ°μ²΄κ° μλλ° μ΄λ»κ² λ©μλλ₯Ό νΈμΆν μ μλκ°?
κΈ°λ³Έκ°μ λ©μλ μ²λ¦¬ μκ°μ κ°μ²΄λ‘ λ³νλ λ€μ νμ λ³ νμ€ λ©μλλ₯Ό νΈμΆνκ³ , λλλ©΄ λ€μ κΈ°λ³Έκ°μΌλ‘ 볡κ·νλ€.
var num = 0.5;console.log(num.toExponential(1)); // 5.0e-1
console.log('test'.charAt(2)); // s
#
μ°μ°μ+
μ°μ°μ#
λνκΈ° μ°μ°κ³Ό λ¬Έμμ΄ μ°κ²° μ°μ°
typeof
μ°μ°μ#
νΌμ°μ°μμ νμ μ λ¬Έμμ΄ ννλ‘ λ¦¬ν΄.
Type | Name | typeof κ²°κ³Ό |
---|---|---|
κΈ°λ³Έ νμ | μ«μ | 'number' |
κΈ°λ³Έ νμ | λ¬Έμμ΄ | 'string' |
κΈ°λ³Έ νμ | Boolean | 'boolean' |
κΈ°λ³Έ νμ | null | 'object' |
κΈ°λ³Έ νμ | undefined | 'undefined' |
μ°Έμ‘° νμ | κ°μ²΄ | 'object' |
μ°Έμ‘° νμ | λ°°μ΄ | 'object' |
μ°Έμ‘° νμ | ν¨μ | 'function' |
β
null
κ³Ό λ°°μ΄μ΄ 'object' λΌλ μ . ν¨μλ 'function' μ΄λΌλ μ μ μ μ
==
)μ μΌμΉ μ°μ°μ( ===
)#
λλ± μ°μ°μ( λλ± μ°μ°μλ λΉκ΅νλ €λ νΌμ°μ°μμ νμ μ΄ λ€λ₯Ό κ²½μ°μ νμ λ³ν ν λΉκ΅.
μΌμΉ μ°μ°μλ νμ μ΄ λ€λ₯Ό κ²½μ° λ³κ²½νμ§ μκ³ λΉκ΅.
==
λλ± μ°μ°μλ κΆμ₯λμ§ μμ.
!!
μ°μ°μ#
!!
μ°μ°μλ νΌμ°μ°μλ₯Ό Boolean
κ°μΌλ‘ λ³ννλ€.
console.log(!!0); // falseconsole.log(!!1); // trueconsole.log(!!''); // falseconsole.log(!!'string'); // trueconsole.log(!!false); // falseconsole.log(!!true); // trueconsole.log(!!null); // falseconsole.log(!!undefined); // falseconsole.log(!!{}); // trueconsole.log(!![]); // true
null
κ³Ό undefined
λ false
, κ°μ²΄μ λ°°μ΄μ λͺ¨λ λΉμ΄μμ΄λ true