const score = x = 100;
console.log(score); // 100
100이 score에 할당이 된다.
const score = x = 100;
console.log(score); // 100 출력
// 표현식인 문은 값처럼 사용할 수 있기 때문이다
// x = 100 할당문은 표현식이기 때문에 할당한 값(100) 으로 평가되고 score 에는 100이 할당된다
*console*.log(score); // 1
var score = 100;
console.log(score); // 2
console.log(score); // undefined
var score = 100;
console.log(score); // 100
변수 선언은 런타임 이전에 먼저 실행되고 값의 할당은 런타임 이후에 실행됩니다. 자바스크립트 엔진은 소스코드 평과 과정에서 변수 선언을 포함한 모든 선언문을 먼저 실행합니다. 따라서 var score;
변수 선언을 먼저 실행하고 이때 undefined를 할당하여 초기화 합니다.t 그래서 변수 선언문 상단에 해당 변수를 참조하면 undefined가 출력이 됩니다 이때 변수 선언문이 소스 코드 하단에 있더라도 이 변수를 어디서든 참조할 수 있는 것을 호이스팅이라고 합니다. 변수 선언문과 값을 할당하는 코드 아래의 console출력에서는 값이 할당된 이후이므로 100이 출력됩니다.var x = 5, result;
result = x++;
console.log(result, x) // 5 6
result = ++x;
console.log(result, x) // 7 7
**전위연산자**
피연산자 앞에 위치한 전위 증가/감소 연산자는 먼저 피연산자의 값을 증가/감소 시킨 후, 다른 연산을 수행한다.
**후위연산자**
피연산자 뒤에 위치한 후위 증가/감소 연산자는 먼저 다른 연산을 수행한 후, 피연산자의 값을 증가/감소시킨다.
//전위
var x = 5, result;
//x를 증가 시킨뒤 그 결과를 result에 할당
result = ++x;
console.log(result,x) //7 7
//후위
var x = 5, result;
//x의 값을 result에 할당한뒤 x값을 증가
result = ++x;
console.log(result,x) //5 6
호이스팅 -변수를 참조하는 구문이 변수 선언 구문보다 앞에 있음에도 에러가 발생하지 않는 것
발생시
var - 성공적으로 호이스팅 작동한다
let /const - 호이스팅이 안되고 레퍼런스 에러가 발생한다
p.43 4.4참고.
부동소수점이란?-컴퓨터에서 실수를 표시하는 방법으로, 소수점의 위치를 고정시키지 않으며 가수와 지수를 사용하여 실수를 표현한다. 가수는 유효숫자를 나타내며 지수는 소수점의 위치를 나타낸다.
p.41참고
변수 선언 없이 식별자 접근한다면 어떤일이 발생하나요?-ReferenrceError발생한다. 이것은 식별자를 통해 값을 참조하려 했지만 자바스크립트 엔진이 등록된 식별자를 찾을 수 없을때 발생하는 에러.