var someNumber = 1;
Note
> var str = 'hello';
> str += ' world!';
hello world!
> 1.0
1
> 3.14
3.14
> 1 / 0
Infinity
> + '0'
0
> + 'hello'
NaN
> 'single'
'single'
> "double"
'double'
> 'single'.length
6
> 'single'[2]
'n'
생성자 new String() 을 통해서도 문자열을 생성할 수 있습니다.
> var strobj = new String('mock');
하지만 new String() 을 통해 선언한 것은 문자열 객체 이므로 문자열 리터럴과는 서로 같지 않습니다.
> typeof strobj
'object'
> typeof 'mock'
'string'
> var a = null;
> a === undefined
false
> someobj // undefined
> var obj = {
name: "Cheol",
age: "unknown"
};
> obj.height === undefined
true
> var myPhone = 'iPhone';
> 3 + 2;
5
> if (apple.price < 100) {
buy(apple);
}
Note
블럭은 중괄호 ‘{‘, ‘}’로 묶인 부분을 의미합니다. 다른 언어들과 달리 자바스크립트는 블록은 새로운 변수 유효범위(scope)를 생성하지 않으므로 변수는 항상 블록 안에서가 아니라 함수의 첫 부분에서 정의해야 합니다.
> if (apple.price < 100) {
buy(apple);
var bought = true; // 블럭 내에서 선언됨
}
> console.log(bought);
true // 블럭 밖에서도 유효
> var myFruit = 'banana';
> switch(myFruit) {
case 'apple':
pay(100);
case 'banana':
pay(200);
break;
case 'grape':
pay(300);
break;
default:
buy('grape');
}
// 첫 번째 case 절에서 break를 하지 않았으므로 pay(100), pay(200)이 실행됩니다.
while 문은 단순한 반복 수행 문장입니다. 괄호 안의 표현식이 참인 동안은 블록을 반복해서 실행하며, 표현식이 거짓이면 반복 수행은 끝납니다.
> while (due - today > 1) {
drink();
today++;
}
> for (var i = 1; i < 10; i++) {
console.log('2 * ' + i + ' = ' + (2*i));
}
2 * 1 = 2
2 * 2 = 4
...
2 * 9 = 18
> var fruits = {
apple: 100,
banana: 200,
grape: 300
};
> for (var i in fruits) {
console.log(i + ': ' + fruits[i]);
}
apple: 100
banana: 200
grape: 300
return문은 함수 내부에서 실행되며, 자신을 호출한 곳으로 되돌아가는 역할을 합니다. 그와 동시에 반환값을 돌려줍니다.
> function add(a, b) {
return a + b;
}
> add(1, 2); // 함수를 호출한 부분
3
> 2 + 3;
5
> isNaN(10);
false
> new String('cat');
{ '0': 'c',
'1': 'a',
'2': 't' }
연산자 | 기능 |
---|---|
. [] () | 세부지정이나 호출 |
delete new typeof + - ! | 단항 연산자 |
+ - * / | 산술 연산자 |
>= <= < > | 비교 연산자 |
=== !== | 동등 연산자 |
&& || | 논리 연산자 |
?: | 삼항 연산자 |
> 1 === 1 && 0
0
> NaN && 1
NaN
> 1 === 1 || 0
true
> NaN && 1
1
> 1 === 1
true
> 1 === 2
false
> 1 === '1'
false
> {a:1} === {a:1}
false // 서로 다른 객체
> var obj1 = obj2 = {a:1}
> obj1 === obj2
true // 같은 객체 참조
> ' ' == '0'
false
> 0 == '0'
true
> 0 == ' '
true // -_-;;;;