본문 바로가기

자바스크립트

(3)
[javascript] Javascript Hoisting | 자바스크립스 호이스팅 | Let, var, const Hoisting 여러 youtube에서는 `process of assigning a undefined value to varible and it it pulled to the top`라고 설명한다. 변수의 값이 아닌 선언만 브라우져 맨 위로 올려지는 것. 아래 예를 들어보겠다. 처음이랑 다른 에러가 난다. 처음에 이거 봤을 때 완전 멘붕. 근데 공부하고 보니까 자바스크립트에서는 위에 코드를 이렇게 인식한다고 한다. 먼저 dog라는 변수를 선언하는것과 같다는 것이다. 그렇기 때문에 dog는 undefined 에러가 나는 것이다. 자바스크립트는 dog를 console.log 위에 선언하지 않았음에도 불구하고 dog라는 변수를 "aware"(알고 있는) 하고 있다는 것이다. 자바스크립트에서는 위에 코드를 아래..
[javascript] 객체 복사와 참조 차이| object deep copy | 객체 깊은 복사 값을 복사하고 싶을 때가 있다. 아래와 같은 상황을 말한다. name 변수 안에 paige라는 값을 넣는다. clonedName이라는 변수에 name 값을 복사하고 싶다. 그러면 위에 처럼 그냥 clonedName = name 하면 된다. clonedName과 name은 연결고리가 없다. 원시 값을 복사하기 때문에 문제가 되지 않는다. 숫자와 boolean 값도 마찬가지이다. 문제는 객체에서 나타난다. 배열로 예를 들어본다. favouriteFruits 첫번째 값을 변경했을 뿐인데 fruits 값도 cherry로 바뀐다. fruits = favouriteFruits 라고 하는 것은 복사가 아니라 참조이기 때문이다. Ojbect에서도 배열과 같은 현상이 나타난다. obj2 의 name 값을 jenny로 바..
[javascript] 자바스크립트 완전 기초 비교 & 연산 // 비교할때는 =을 3개를 사용한다. // 왼쪽 오른쪽 같은데 true가 나온다 5 == '5' // true // 왼쪽 오른쪽 같은데 false 5 === '5' // false // 자바스크립에서 이것만 예외이다. 왼쪽 오른쪽 같은데 false가 나옴 NaN === NaN // false // 사칙연산을 먼저 계산한다. 1 + 2 * 3 > 6 // 7>6 true 변수 // 계산 결과를 기억하기 위해 변수(variable)를 사용한다. // 변수명은 $와 _를 제외한 특수문자는 안되고 숫자는 첫 글자로는 쓸 수 없다. var n = 3 * 5 console.log(n) // 15 // 변수에 값을 꼭 안넣어도 된다. default로 undefined 들어감 var 빈값; consol..