1. 피연산자가 number, boolean, undefined, null 이면 Number()함수를 호출해 숫자로 바꿔준 후 뺄셈연산을 한다.

2.피연산자가 객체일 경우 먼저 valueOf() 함수를 호출하고, valueOf()함수가 피연산자에 없는 경우 toString()를 호출하고 문자값을 숫자로 변환한다.


형식 : 값 ||

특징 : 첫번째 값이 true 이면 두 번째 값은 확인도 하지 않고 true 를 반환한다.


 형식 : 값 &&

 특징 : 첫번째 값이 true 몇 두 번째 값을 판단하고, 첫번째 값이 false 면 두 번째 값은 평가하지 않는다.

           첫번째 값이 true이고 두 번째 값이 정의 되어 있지 않으면  error 처리된다.




     

단항연산자 : 단 하나의 값에만 적용되는 연산자. ++ 또는 -- 를 숫자 앞에 쓰면 변수에 값을 추가하거나 빼고, 문장을 평가한다. 단항 연산자를 값 뒤에 붙이면 (예 - 89++) "++" 이 부분을 해당 문장을 해석한 후에 값에 적용하여 연산한다. 따라서 여러 문장에서 단항 연산자를 사용할 경우, 해당 기호를 값 앞에 붙이느냐, 뒤에 붙이느냐에 따라결과값이 달라진다.

예 -  var aa = 29

        ++aa



1. alert( isNaN( NaN ) ) //true

2. alert( isNaN( 10 ) ) //false

3. alert( isNaN( "10" ) ) //false

4. alert( isNaN( "blue" ) ) //true

5. alert( isNaN( true ) ) //false


isNaN() 함수는 매개변수(parameter)를 "숫자로 바꿀 수 없니?" 에 대한 대답으로 생각하면 편하다.


1 - NaN의 데이터 타입은 숫자이지만, 위 주황색 텍스트 질문에 대답은 "응(true). 없어." 이다.


2 - 10의 데이터 타입은 숫자, 위 질문에 대답은 "아니(false). 있어." 이다. 10 -> (같은 값이긴 하지만) 10(숫자)


3 - "10" 데이터 타입은 문자, 위 질문에 대한 대답은 아니(false) 있어 이다. "10" -> 10 (js에서는 가능)


4 - "blue" 데이터 타입은 3번과 같은 문자, 숫자로는 바꿀 수가 없다. 따라서 위  질문에 대한 대답은 "응(true). 없어" 이다.


5 - true 의 데이터 타입은 boolean, 질문에 대한 대답은  "아니(false) 있어." 이다.


영어 base로 만들어진 함수여서 한국인에게 좀 더 헷갈리게 다가오는 함수인듯 하다.




"프론트엔드 개발자를 위한 자바스크립트 프로그래밍" 책을 공부하면서 인상깊은 내용을 정리한 내용입니다.

http://www.insightbook.co.kr/book/programming-insight/professional-javascript-for-web-developers


+ Recent posts