배열 (Array)
let myArray = [3, 6, 1, 4, 2];
myArray[2] = 3;
myArray[0];
let my2DArray = [[1, 2], [3, 4], [5, 6]];
my2DArray[2][0];
Array methods
let myArray = [1, 2, 3, 4, 5];
myArray.length
myArray.push(4)
myArray.length;
myArray.push(6);
myArray.pop();
myArray.shift();
myArray.unshift(0);
myArray.indexOf(3);
myArray.includes(3);
myArray.join();
myArray.join('');
'I love you'.split(' ');
Array.isArray(myArray);
console.table(myArray);
객체 (Object)
let user = {
firstName : 'Steve',
lastName : 'Jung',
email: 'jhoryong@gmail.com',
city: 'Seoul'
};
user.firstName;
user['firstName'];
user[firstName]
user.age = 28;
delete user.firstName;
'city' in user;
for (let key in user) {
console.log(key + ':' + user[key])
}
for in, for of
for in
: 객체의 property를 iterate 할 때 쓴다. [enumerable] 속성이 true 면 for-in 을 쓸 수 있다. (Object는 enumerable 이 true다.)
for of
: 배열, 문자열 등을 iterate 할 때 쓴다.
- [Symbol.iterator] 속성이 있는 객체는 for of 가 사용이 가능하다.
let a = [1,2,3]
let b = 'abc'
for (let element of a) console.log(element);
for (let element of b) console.log(element);
느낀점
- C++ 의 경우
vector
에서 push_front
, pop_front
함수는 아예 없다. 왜냐하면 O(n)
이기 때문이다. 근데 자바스크립트는 .shift()
, .unshift()
가 존재한다... 심지어 MDN 에서도 해당 함수들의 비효율성에 대해 말하지 않는다. 자바스크립트는 효율보다는 생산성에 더 초점을 맞추고 있어서 그런걸까?
- 나무위키에서 js 는 애증의 언어라고 말하고 있는데 왜 프로그래머들이 그렇게 느끼는지 조금 이해가 된다.