일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리팩터링2판테스트
- cypress React
- FirebaseAnalytics
- formik react-query submitting not working
- git commit merge
- 테스트코드책
- Git commit 합치기
- 가상면접2장
- 시스템설계면접팁
- git squash
- 리팩토링2판4장
- 가상면접으로대규모시스템
- 시스템설계면접예시
- awss3
- cypressBDD
- s3이미지다운로드됨
- react-ga
- 가상면접3장
- react
- 시스템설계면접
- 시스템설계
- 디자인패턴
- git commit 협업
- gitsquash
- 리액트구글애널리틱스
- 전략패턴
- 시스템설계방법
- formik submitting not working
- file not found Error
- 헤드퍼스트전략패턴
- Today
- Total
mingg IT
[JavaScript] const, var, let 차이점 본문
ES6 이후 const , let을 이용하여 새로운 변수를 정의함.
그 이전엔 var로 했었음.
var 에는 많은 문제가 있었는데
1. 정의된 변수가 함수 scope를 가짐.
function example() {
var i =1;
}
console.log(i) // 에러
2. for 반복문에서 정의된 변수가 반복문이 끝난 이후에도 게속 남아있음
for(var i =0; i<10; i++) {
console.log(i);
}
console.log(i); //10 출력
3. var 변수는 재정의가 가능함
var a = 1;
var a = 2;
const는 변수를 재할당 불가능함.
const a = 1;
a = 2; //에러 발생
var a = 1;
a = 2; //에러 없음
let a = 1;
a = 2; //에러없음
const로 정의한 객체의 내부 속성값은 수정가능
const a = {prop1 : 'a'}
a.prop1 = 'b' //에러발생하지 않음
console.log(a); // {prop1: 'b'}
const로 정의한 객체를 재할당은 불가능함
const a = {prop1: 'a'}
a = {prop2 : 'b'} //에러 발생
새로운 객체를 생성하는 기능은 필요 없고 단지 수정만 할 수 없도록 차단하고 싶다면
Object.preventExtensions
Object.seal
Object.freeze 를 사용한다.
콘솔 로그 출력 시 단축 속성명 활용하기
const name = 'minji'
const age= 25;
console.log('name=', name, ',age=',age); // name = minji, age=25
console.log({name, age}); // {name: 'minji', age:25}
계산된 속성명 사용하지 않는것 vs 사용한 것
function ex1(key, value){
const ojb = {};
obj[key] = value;
return obj;
}
function ex2(key, value){
return { [key]: value +1};
}
배열의 비구조화
const arr = [1,2];
const [a,b] = arr;
console.log(a); //1
console.log(b); //2
배열의 비구조화 속성값 건너뛰기
const arr = [1,2,3];
const [a, , c] =arr;
console.log(a); //1
console.log(c); //3
객체 비구조화
const obj = {age : 25, name: 'minji'};
const {age, name} = obj;
console.log(age); //25
console.log(name); // 'minji'
매개변수 기본값을 이용해서 필숫값을 표현하는 법
function required(){
throw new Error('no parameter');
}
function printLog(a=required()){
console.log({a});
}
printLog(10); // {a:10}
printLog(); //에러 발생
'FrontEnd' 카테고리의 다른 글
[JavaScript] 제너레이터(generator) (0) | 2021.01.12 |
---|---|
[Javascript] Promise (0) | 2021.01.10 |
[React] 단일 페이지 애플리케이션(SPA) (0) | 2021.01.04 |
[React] Sass, css-in-js 적용 예제 (0) | 2021.01.03 |
[React] css 적용하기 (0) | 2021.01.03 |