[주어진 과제]
- 자바스크립트란?
- js 타입 (Primitive Type(number, string, boolean, ...) / Object / Array)
- 변수, 상수 선언 방법 (var, let, const)
- 기본 조건 문법 (if, switch)
- 기본 반복문 ( for / for..of / for..in / while)
- 기본 함수 선언 (function / arrowFunction)
- 주석
- == 비교와 === 비교의 차이점
(1) Number (숫자형)
var num = 9/2;
console.log(num); // 4.5
(2) String (문자형)
var str = 'likelion';
console.log(str); // likelion
document.write("<span style='color:orange'>","Likelion","</span>")
(3) Boolean (논리형)
true
), 맞지 않으면 거짓(false
)의 결과값을 표현한다.>> 100 < 10
false
>> 100 > 10
true
(4) Null
var tmp;
console.log(typeof tmp); // object
console.log(tmp); // null
(5) Undefined
var tmp;
console.log(typeof tmp); // undefined
console.log(tmp); // undefined
key-value
쌍의 데이터를 저장하며, 하나의 값만 저장되는 원시타입과 다르게 여러 개의 프로퍼티를 저장할 수 있다.var obj = {
name: 'likelion',
age: 11,
passed: true,
};
console.log(obj.name, ojb.age, obj.passed); // likelion 11 true
var season = ["봄", "여름", "가을", "겨울"];
나이 = 올해연도 - 태어난연도 + 1
변수: 나이, 올해연도, 태어난연도 / 상수: 1
(1) var: 중복 선언 가능
var name = 'readysetq';
console.log(name); //readysetq
var name = 'likelion';
console.log(name); //likelion
var
로 선언한 변수는 동일한 이름으로 여러 번 중복해서 선언이 가능하다. 이와 같은 경우에는, 마지막에 할당된 값이 변수에 저장된다.(2) let: 중복 선언 불가능, 재할당 가능
var name = 'readysetq';
console.log(name); // readysetq
var name = 'likelion';
console.log(name);
// Uncaught SyntaxError: Indentifier 'name' has already been declared
name = 'javascript';
console.log(name); // javascript
let
은 중복 선언을 했을 때, 해당 변수가 이미 선언되었다는 에러메시지를 출력한다.name = 'javascript'
와 같이 다른 값을 재할당하는 것은 가능하다.(3) const: 중복 선언 불가능, 재할당 불가능
const name = 'readysetq';
console.log(name); //readysetq
const name = 'likelion';
console.log(name);
// Uncaught SyntaxError: Indentifier 'name' has already been declared
name = 'javascript';
console.log(name);
// Uncaught TypeError: Assignment to constant variable.
const
는 중복 선언과 재할당 모두 불가능하며, 에러메시지를 출력한다.const
는 상수 constant에서 따와 상수를 뜻하기 때문에 한 번만 선언이 가능하며, 값을 바꿀 수 없다.-> const
를 기본으로 사용하여 불필요한 변수의 재사용을 방지하고, 재할당이 필요한 경우 let
을 사용하는 게 좋다.
(객체를 재할당하는 경우는 생각보다 흔하지 않다.)
if (조건1) {
명령1
}
-> 조건1을 만족하면 명령1을 실행한다.
if (조건1) {
명령1
} else {
명령2
}
-> 조건1을 만족하면 명령1을 실행하고, 만족하지 않으면 명령2를 실행한다.
if (조건1) {
명령1
} else if (조건2) {
명령2
} else {
명령3
}
-> 조건1을 만족하면 명령1을 실행하고, 조건2를 만족하면 명령2를 실행하고, 둘 다 만족하지 않으면 명령3을 실행한다.
switch(값) {
case 값1: 명령1
break
case 값2: 명령2
break
case 값3: 명령3
break
...
default: 명령n
}
-> swtich의 값(변수)과 case의 값(상수)을 일대일로 비교하여 일치할 경우에 명령을 실행한 뒤 break로 인해 swtich문을 완전히 빠져나온다.
-> 일치하지 않는 경우에는 다음 case문으로 넘어간다.
for(초기식; 조건식; 증감식;) {
명령;
}
for(let i=1; i<=10; i++) {
console.log('멋쟁이 사자처럼'); // 10번 출력된다..
}
for arr = [1, 2, 3];
for(var item of arr) {
console.log(item); // 1, 2, 3
}
var obj = {
a: 1,
b: 2,
c: 3
};
for(var item in obj) {
console.log(item); // a, b, c
while(조건) {
명령;
}
var count = 0;
while(count < 10) {
console.log(count++); // 0부터 1씩 더하며 9까지 출력된다..
}
-> 0부터 9까지 출력한다. count=10이 되는 순간 조건식은 거짓이므로 while문을 벗어난다.
function 함수명() {
명령;
}
함수명();
//또는
함수명(변수);
function foo() {
return "이것은 함수이다.";
}
foo(); //"이것은 함수이다."
()
와 코드블록{}
사이에 화살표=>
를 넣어주면 화살표 함수(Arrow Function)로 바꿀 수 있다.//일반 함수 표현
var foo = function() { console.log("foo") }; //foo
//화살표 함수 표현
var bar = () => console.log("bar"); //bar
// 이것은 한줄일 때 사용하는 주석
/* 이건 여러줄일 때 사용하는 주석
첫번째줄
두번째줄
다 주석처리되지롱 */
==
비교는 연산자를 이용하여 [값]을 비교한다.===
비교는 연산자를 이용하여 [값 & 자료형]을 비교한다.2 == "2" // true
2 === "2" // false - 2는 number, "2"는 string이기 때문