22.02.12(토) javascript 입문

4355 단어 JavaScriptJavaScript

변수 호이스팅

console.log(score);
var score = 100;

위 코드는 문제없이 100을 출력한다. 왜냐하면 자바스크립트 엔진이 소스코드를 실행하기 전에 먼저 평가과정을 거치기 때문이다. 자바스크립트 엔진은 평가과정 때 변수들이 어디에 위치해 있던지간에 다 호이스팅해와서 선언 및 초기화한다. 이 평가과정이 다 끝난 후에야 소스코드를 한줄씩 차례대로 읽어가며 실행하게 된다.

표현식

값으로 평가될수 있는 문.

1+2 // 3이라는 값으로 평가되는 표현식이다.
"hello" // "hello"라는 값으로 평가되는 표현식이다.
var score; //선언식은 표현식이 아니다.
score = 100; //할당식은 그 자체로 표현식이다. 예시는 100이라는 값으로 평가된다.

이 때, 할당식이 표현식에 해당한다는 점이 특히 흥미로웠다.

var x;
console.log(x=10); // 10
var a = b = c = 1; // 따라서 이렇게 연쇄 할당이 가능하다.
console.log(a,b,c); // 1 1 1 

타입변환방법(연산자 이용,생성자 이용)

+연산자를 숫자 타입의 값 앞에 붙이면 아무런 효과가 없지만, 문자열 타입의 값 앞에 붙이면 해당 문자열을 숫자타입으로 변환한다. (이 방법 말고 Number() 생성자를 new없이 호출해서 변환하는 것도 가능하다.)

var x = '3';
console.log(typeof x) // string
console.log(typeof +x); // number
console.log(typeof Number(x)); //number

동등 비교, 일치 비교

동등 비교: 값을 비교하기 전에 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 값을 비교.
일치 비교: 암묵적 타입 변환 과정 없이 값을 비교.
x == y : x와 y의 암묵적 타입 변환 후의 값이 같음.
x === y : x와 y의 값과 타입이 같음.

왠만하면 일치 비교(===)를 쓰자

객체

객체는 프로퍼티의 집합체이며 변경가능한 값이다.

프로퍼티: 접근 가능한 이름(key)과 활용 가능한 값(value)을 가지는 특별한 형태

메소드: 프로퍼티의 값으로 함수가 쓰인 특별한 프로퍼티

기억하자! 함수도 값이다!

좋은 웹페이지 즐겨찾기