var val1
let val2
const val3
변수는 var let
상수는 const로 표현한다.
자바와 달리 데이터 타입으로 변수를 선언하지 않는다.
|
let |
var |
|---|---|---|
| 중복 선언 | ❌ | ⭕ |
| 재할당 | ⭕ | ⭕ |
| 스코프 범위 | 블록 스코프 | 함수 스코프 |
| 호이스팅 방식 | 초기화하지 않은 변수참조 시 undefined |
초기화하지 않은 변수참조 시 에러발생 |
💡호이스팅이란?
코드를 실행하기 전에 함수, 변수, 클래스 또는 import의 선언문을 해당 범위의 맨 위로 끌어올리는 것처럼 보이는 현상
참고
numberstringbooleannullundefinedsymbol원시 타입을 제외한 모든 것을 객체 타입으로 지칭한다.
ArrayDateMathObjectetc..
let arr = [10, "str", true, function(){console.log("Hello");}];
타입을 불문하고 한 배열안에 들어갈 수 있다.
| API | 설명 |
|---|---|
length |
배열의 길이 |
forEach() |
배열의 항목 순회 |
push() |
배열의 끝에 항목 추가 |
pop() |
배열의 끝의 항목 제거 |
unshift() |
배열의 앞에 항목 추가 |
shift() |
배열의 앞의 항목 제거 |
indexOf() |
항목의 인덱스 찾기 |
splice() |
인덱스 위치의 항목 제거 |
const car = {
name: "avante",
mileage: 1000,
run: function() {
console.log("run!!");
}
}
key : value 형태로 이뤄져있다.
객체가 가지고 있는 값을 프로퍼티(Property), 함수를 메서드라고 한다.
프로퍼티와 메서드는 .을 통해 접근할 수 있다.
car.name = "k5";
car.function();
자바의 field == JS의 property
function setPerson(name, age){
person.name = name;
person.age= age;
return "setPerson complete";
}
함수의 매개변수는 타입 없이 적는다.
+연산자의 구조는 자바와 같다.
단, 비교 연산자에는 === !== 연산이 추가 되었다.
=== : 데이터 타입과 값이 같을 때 true!== : 데이터 타입과 값이 같지 않을 때 trueJS Standard Style에서는 항상
==대신===을 쓰는 것을 권고하고 있다.
참고