Java Script(추가)
Java Script 추가내용
- Boolean() 함수
- 0
- NaN
- ”“[빈 문자열]
- null
- undefined
위 5개의 요소는 false로 변환되며, 이외에는 모두 true로 변환된다.
-
숫자와 문자열 자료형 자동 변환
숫자와 문자열에 ‘+’ 연산자를 적용하면 자동으로 숫자가 문자열로 변환된다.
console.log(52 + 273); // 325 console.log("52" + 273); // 52273 console.log(52 + "273"); // 52273 console.log("52" + "273"); // 52273
-
불 자료형 자동 변환
!연산자를 두 번 사용해 Boolean() 함수를 사용하는 것과 효과가 같다.
-
삼항 연산자
<불 표현식=""> ? <참> : <거짓> number % 2 == 0 ? true : false 거짓>참>불> -
짧은 초기화 조건문의 기본 형태
<변수> = <대상 변수=""> || <대상 변수가="" undefined일="" 때="" 넣을="" 값=""> 대상>대상>변수> -
자바스크립트 엔진
자바스크립트는 가장 먼저 선언된 변수와 함수를 가져와서 메모리에 기억을 해둠
함수가 실행되기 전에 안에있는 변수들을 범위의 최상단에 선언함
-
var 과 let의 차이점 / 호이스팅
-
var는 함수만 지역변수로 호이스팅이 되고, 나머지는 다 전역변수로 올림
var를 사용하면 같은 이름의 변수가 뒤에 선언되어도 문제가 없음
변수의 선언과 초기화 앞에 먼저 사용을 해도 에러가 발생하지않음
var변수의 경우 어디서 어떻게 선언을 하더라도 항상 컨텍스트내의 최상위로 끌고올라온 뒤 undefined를 할당해 둔다.
- 현대 자바스크립트에서 var 키워드는 절대 사용하지 않는 것이 좋다.
// 같은 이름 변수 허용 var a = 1 console.log(a) // 1 var a = 2 console.log(a) // 2
for(var i=1;i<5;i++){ console.log(i) } console.log(i) // for문 밖에 있어도 var로 전역변수가 되었기때문에 허용함
console.log(a) // 선언, 초기화 앞에 먼저 나와있어도 에러발생하지않음 var a = 1 console.log(a)
-
let을 사용하면 위 문제들이 모두 해결됨 (다른 언어를 쓸때처럼 에러가 발생)
let도 호이스팅이 일어나 스코프 내 최상위로 끌어올려지지만, undefined를 할당하지 않기 때문에 참조에러가 발생하게 된다.
-
호이스팅(Hoisting)
JS엔진은 스크립트를 가져 오면 가장 먼저 코드에서 데이터를 위한 메모리를 설정한다.
- 함수는 전체 함수에 대한 참조와 함께 저장된다.
- 변수의 경우 ES6 문법인 let과 const는 초기화 되지 않은 채로 저장이 되고, var는 undefined로 저장이 된다.
호이스팅은 대다수 버그의 원인이 되는 부분이기 때문에 많은 회사에서 ‘해당 블록에서 사용할 변수는 미리 블록의 가장 위에 적는다’는 가이드라인을 두고 있다.
-
-
디폴트 매개 변수
ECMAScript6 부터는 디폴트 매개 변수 기능이 추가되었다.
function print(name, count = 1){ console.log('${name}이/가 ${count}개 있습니다.') } print("사과");
하지만 디폴트 매개 변수는 뒷부분에 있는 매개 변수에만 적용할 수 있다는 제약이 있다.
댓글남기기