var person = {
'first-name': 'Ung-mo',
'last-name': 'Lee',
gender: 'male',
1: 10,
function: 1
};
console.log(person);
abstract arguments boolean break byte
case catch char class* const
continue debugger default delete do
double else enum* eval export*
extends* false final finally float
for function goto if implements
import* in instanceof int interface
let long native new null
package private protected public return
short static super* switch synchronized
this throw throws transient true
try typeof var void volatile
while with yield
// *는 ES6에서 추가된 예약어
var person = {
'first-name': 'Ung-mo',
'last-name': 'Lee',
gender: 'male',
1: 10
};
console.log(person);
// {1: 10, first-name: 'Ung-mo', last-name: 'Lee', gender: 'male'}
console.log(person.first-name); // NaN: undefined-undefined
console.log(person[first-name]); // ReferenceError: first is not defined
console.log(person['first-name']); // 'Ung-mo'
console.log(person.gender); // 'male'
console.log(person[gender]); // ReferenceError: gender is not defined
console.log(person['gender']); // 'male'
console.log(person['1']); // 10
console.log(person[1]); // 10 : person[1] -> person['1']
console.log(person.1); // SyntaxError
console.log(person.age); // undefined
var grades = {
'list': {'egoing': 10, 'k8805': 6, 'sorialgi': 80}
}
alert(grades['list']['egoing']); // 10
var person = {
'first-name': 'Ung-mo',
'last-name': 'Lee',
gender: 'male',
};
person.age = 20;
console.log(person.age); // 20
var person = {
'first-name': 'Ung-mo',
'last-name': 'Lee',
gender: 'male',
};
delete person.gender;
console.log(person.gender); // undefined
// 피연산자가 프로퍼티 키이어야 한다.
delete person;
console.log(person); // Object {first-name: 'Ung-mo', last-name: 'Lee'}
var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};
for(key in grades) {
document.write("key : "+key+" value : "+grades[key]+"<br />");
}
/* key : egoing value : 10
key : k8805 value : 6
key : sorialgi value : 80 */
grades라는 변수에 담겨있는 값들을 하나씩 가져와서 반복문을 실행한다.
list 태그를 이용해서 구현할 수 있다.
document.write("<li>""key : "+key+" value : "+grades[key]+"</li>");
배열에서도 for...in 문을 사용할 수는 있다.
for (var index in array) {
console.log(index + ': ' + array[index]);
}
/*
0: one
1: two
*/
for...in 문은 인덱스의 순서가 중요한 배열에서 사용하지 않는 것이 좋다.
본질적으로 배열은 일반적인 객체와 속성이 같기 때문에 for...in 문을 사용하면 순서를 보장할 수 없다.
배열 요소만을 순회하지 않는다.
var array = ['one', 'two'];
array.name = 'my array';
for (var index in array) {
console.log(index + ': ' + array[index]);
}
/*
0: one
1: two
name: my array
*/
배열의 요소를 순회하기 위해 for...of 문을 사용한다.
const array = [1, 2, 3];
array.name = 'my array';
for (const value of array) {
console.log(value);
}
/*
1
2
3
*/
var grades = {
'list': {'egoing': 10, 'k8805': 6, 'sorialgi': 80},
'show' : function(){
for(var name in this.list){
document.write(name+':'+this.list[name]+"<br />");
}
}
};
grades.show();
grades라는 객체는 list라는 데이터와 show라는 함수를 그룹화 한 것이다. → JavaScript를 이용한 객체 지향 프로그래밍 기법의 핵심이 되는 성질로, 취지에 따라 로직을 객체에 그룹화하고 객체라는 부품을 조립해서 소프트웨어라는 완제품을 만들 수 있게 해준다.
이렇게 기초 문법이 일단 마무리가 되었다👏👏 배운 내용을 늦지 않게 활용해 보는 것이 필요하다는 생각에서, 앞으로 며칠간은 문제를 통해서 배웠던 것을 복습하는 시간을 가져보려고 한다😀