본문 바로가기

JavaScript

Chapter 1 - VALUES, TYPES, AND OPERATERS

1. Values

컴퓨터는 전기신호가 강하면 high pulse, 약하면 low pulse로 0,1이라는 2진수의 bit 단위로 구성

다수의 bit를 사용한 정보의 최소 단위 'chunk' 즉, value

Number, String, Boolean, Undefined value, Fucntion, Object 6가지의 기본타입

   

   

   

2. Numbers

JavaScript Numbers are Always 64-bit Floating Point

   

   

64-bit Floating Point의 한계

ex)

function myNumber(){

var x = 999999999999999; // x will be 999999999999999

var y = 9999999999999999; // y will be 10000000000000000

console.log(x);

console.log(y);

}

소수 계산

ex)

var x = 0.2 +0.1

console.log(x); //x 는 0.30000000000000004, 17자리부터 다른 값이 나온다.

   

   

1. var x = (0.2 * 10 + 0.1 * 10)/ 10을 쓸 수 있다. 이외에

2. var sum = function(a, b){

return Math.round((a+b) *)/100;6

}

3. var sum = function(a, b){

return Math.round(a.toFixed(2) * 100 +b,toFixed(2) * 100)/100;

}

//round() : 근처의 정수값으로 변환

//toFixed(n) : 소수n번째

   

   

Specital Number

-JS에서는 특별한 value가 있는데 number로 간주되지만 일반적인 number처럼 동작하지 않는다.

   

Infinity, -Infinity

- Number를 연산 하였을 때 +무한대 값이 나오는 경우와 -무한대 값이 나오는 경우

   

   

function myInfinity() {

var myNumber = 2;

while (myNumber != Infinity) {

myNumber = myNumber * myNumber;

console.log(myNumber );

}

var x = 2/0;

var y = -2/0;

console.log(x); //Infinity

console.log(y); //-Infinity

}

   

   

   

NaN

- JS에서 숫자가 아닌 것을 나타내는 예약어

   

   

function myFunction() {

var x = 100/"apple";

var y = 100/"10";

console.log(x); //NaN

console.log(y); //10

console.log(typeof (x)); //number

console.log(isNaN(x)); //true

}

   

   

- 결과값 예상하기

1. console.log(x+y);

   

2, var v1 = NaN;

var v2 = "5";

console.log(v1+v2;);

   

3. Strings

큰 따옴표("), 작은 따옴표(')를 이용하여 따옴표안에 문자를 적어서 사용

따옴표 사이에 오기 어려운 것들이 있는데 예를 들면 newLine(엔터)는 구별하기가 어렵다.

문자열은 한 줄에 적혀있어야만 한다.

   

 

escape charaters

의미

\'

작은 따옴표

\"

큰 따옴표

\ \

백슬래시

\b

백스페이스

\f

폼 피드

\n

줄 바꿈

\r

캐리지 리턴

\t

가로 탭

   

4. Booleans

프로그래밍에서 yes, no 또는 on, off같이 확실하게 구별되는 변수

JS에서 Boolean타입은 True, False

실제 존재하는 값을 True로 리턴한다.

존재 하지 않는 값(0, "", undefined, null, false, NaN)를 제외한 모든 값을 true를 리턴

JS에서 NaN은 무의미한 값으로 간주되어 false를 리턴

   

String 비교

console.log("Aardvark" < "Zoroaster"); //true

console.log("aardvark" < "Zoroaster"); //false

   

Number 비교

   

console.log(1+1 == 2 && 10 * 10 > 50);

- 괄호를 사용하셔 우선순위를 바꿀 수 있다.

테스트

function myBoolean() {

   

var b1 = Boolean(100);

var b2 = Boolean(3.14);

var b3 = Boolean(-15);

var b4 = Boolean("Hello");

var b5 = Boolean('false');

var b6 = Boolean(1 + 7 + 3.14);

//////////////////////////////

var b7 = Boolean(0);

var b8 = Boolean(100 / "apple");

var b9 = Boolean("");

var b10 = Boolean();

var b11 = Boolean(null);

///////////////////////////////

console.log("100 : " + b1);

console.log("3.14 : " + b2);

console.log("-15 : " + b3);

console.log("\'Hello\' : " + b4);

console.log("\'false\' : " + b5);

console.log("1 + 7 + 3.14 : " + b6 + "\n");

   

console.log("0 : " + b7);

console.log("100/\"apple\" : " + b8);

console.log("\"\" : " + b9);

console.log(" : " + b10);

console.log("null : " + b11);

}

   

5. Automatic Type Conversion

JS에서는 Type이 다른 변수들끼리 연산을 할 때 자동으로 타입전환을 해준다.

같은 type의 변수들을 비교 할때 ==을 사용해서 true인지 확인할 수 있다.

   

   

ex) console.log(8 * null)

console.log("5" -1)

console.log("5"+1)

console.log("five" * 2)

console.log(false == 0)

   

console.log(null == undefined);

console.log(null == 0);

   

   

●'=='는 피연산자들이 서로 다른 타입이면 강제 형변환을 해서 비교한다.

강제 형변환을 막기 위해서는 '===', '!=='연산자를 사용한다

   

   

0 == false 의 결과값 : true

"" == false의 결과값 : true로 리턴된다.

자동으로 형변환을 막기 위해서는 ===, !==연산자를 사용한다.

0 === false 의 결과값 : false

"" === false의 결과값 : false로 리턴 된다.

   

   

*JavaScript Type Conversion Table

   

기존 Value

Number로 형변환

String으로 형변환

Boolean으로 형변환

false

0

"false"

false

true

1

"true"

true

0

0

"0"

false

1

1

"1"

true

"0"

0

"0"

true

"1"

1

"1"

true

NaN

NaN

"NaN"

false

Infinity

Infinity

"Infinity"

true

-Infinity

-Infinity

"-Infinity"

true

""

0

""

false

"20"

20

"20"

true

"twenty"

NaN

"twenty"

true

null

0

"null"

false

undefined

NaN

"undefined"

false

   

   

   

- null, undefined는 실제값이 존재하는지 확인하는 용도로 자주 사용된다.

   

'JavaScript' 카테고리의 다른 글

8장 버그와 에러  (0) 2016.11.13
9장 정규 표현식  (0) 2016.11.13
5장 Higher - Order Functions  (0) 2016.11.13
4장. 데이터 구조: 객체와 배열  (0) 2016.11.13