Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ...args
- .toLocalString()
- 1주차
- 2020년 준비
- 2주차
- 4주차
- 5주차
- array
- array method
- async
- authentication
- AWS
- codestates
- commit
- Cookie
- CSS
- Data Structre
- Data Structure
- DataSturcutre
- Date.now()
- DB에 사진 저장하기
- Dev log
- DOM
- EC2
- EC2로 웹 만드는 방법
- EC2와 S3 연결하기
- element
- Es5
- ES6
- event 객체
Archives
- Today
- Total
souvenir
== vs === 의 차이 본문
요약 : ==는 값만 확인, ===은 유형과 값을 모두 확인함
JavaScript에서는 대개 double Equales(==) 대신 triple Equales(===)를 경우가 많다.
그 이유는 막연히 ===이 더 엄격하게 값의 동일함을 확인하므로 안정성을 위해 후자를 사용하는 것이 낫다고 하기 때문이다. 정확히 이 둘의 차이는 무엇일까?
둘 다 값이 동일한지를 확인하는 기호이지만 차이는
1) value와 type 모두 동일한지 확인하는 기호
2) value만 동일한지 확인하는 기호
이다.
예시를 봐보자
1. triple equales(===)의 경우
5 === 5 //true
'hello world' === 'hello world' // true value와 type(string) 모두 동일
true === true // ture
77 === '77' // false number vs string
'cat'=== 'dog' // false 값이 다르니 당연
false === 0 // false boolean vs number
위의 예시처럼 값 뿐 아니라 type까지 정확하게 동일할 때 true로 확인된다.
2. double equalse(==)의 경우
== 의 경우 type coercion(유형변환)도 강제할 수있다.
type coercion란 비교할 두 값을 공통된 타입으로 변환후 값을 비교한다는 의미이다. 그렇기 때문에 느슨한 동등성(loose equality)을 확인하는 용도라고도 한다.
'77' === 77 // false triple equalse의 경우 유형도 확인하므로
'77' == 77 // ture
false === 0 // false
false == 0 // true 0은 falsy한 값에 속하므로
falsy한 값이라는 것이 무엇인지는 이전 블로그 글에 잘 설명해두었다. JS는 유연성이 높아서 아래의 값들 모두 falsey한 값이라고 지칭한다.
- false — boolean false
- 0 — number zero
- “” — empty string
- null
- undefined
- NaN — Not A Number
그래서 아래의 예시에서도 false일 때의 결과가 출력되게 된다.
function foo () {
if(0){
console.log('안')
}
console.log('밖')
}
foo(); //'밖'이 출력됨
출처 : codeburst.io/javascript-double-equals-vs-triple-equals-61d4ce5a121a
'2020년 > Java script' 카테고리의 다른 글
[JS] ES5문법과 ES6문법에서 객체를 만드는 차이 (0) | 2020.08.11 |
---|---|
[JS] JS와 객체지향 언어(OOP : Object Oriented Programming) (0) | 2020.07.29 |
배열의 축소 : Array.reduce (0) | 2020.05.13 |
1-3 [메소드]_배열 다루기 (2) (2) | 2020.04.28 |
1-3 [메소드]_배열 다루기 (0) | 2020.04.21 |
Comments