Javascript

😭원시값, 객체, undefined, false, 연산자...

킹king 2020. 11. 8. 17:50
반응형

primitive(원시 값)

1. 숫자

2. 문자열

3. 불리언

4. undefined

5. null

 

object(객체)

1. 배열 []

2. 정규표현식

3. 객체 리터럴 {}

 

 

원시값은 프로퍼티 추가, 변경이 불가능.

var a = '123';
a.length = 1;
a.length // 3

객체는 프로퍼티 추가, 변경 가능

var b = [1,2,3];
b.length = 1;
b.length // 1

 

 

undefined는 왜 뜨는가

1. 변수의 정의가 안되어있을 때

var a;
a //undefined

2. 매개변수가 없을 때

function a(x) = {return x};
a() //undefined

3. 존재하지 않는 것에 프로퍼티

var a = [];
a.length //undefined

 

 

타입 강제

타입이 다른데 그걸 연산해줌.

'3' * '4'
> 12

3 + 'times'
> 3times

 

 

어떻게 변하나

  String() Number() Boolean()
undefined 'undefined' NaN false
null 오류 0 false
false 'false' 1 false
true 'true' 0 true
0 '0' 0 false
NaN 'NaN' NaN false
'' '' 0 false

 

 

false에 해당하는 것

0, -0, '', null, undefined, 값을 할당하지 않은 변수

 

 

&& 연산자

a && b ---> a가 true일 때 b 실행.

즉 a가 false면 b가 실행조차 안된다는 의미.