화면구현/HTML
루즈한비교와 엄격한비교
psys
2020. 7. 10. 09:35
728x90
![]() |
![]() |
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
if("42"){
alert("박성연 만만세");
}
alert("42"==true);
</script>
자동 형변환
박성연 만만세만 뜬다!
왜? =연산자는 우리 몰래 자동형변환이 일어나기 때문
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
if ("42") {
alert("박성연 만만세");
}
if ("42" == true) {
alert("이건 왜 안 떠요?");
}
</script>
배열
비어있다는 사실만 같음!! 다른 것!
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
alert([] == []);
</script>
문자열 비교
루즈(loose)한 비교
==, !=
자동 형변환이 발생
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
alert("42" == 42);//숫자(형변환)와 숫자비교
</script>
엄격(strict)한 비교
===, !==
자동형변환없이 비교
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
alert("42" === 42);//문자열과 숫자비교
</script>
String과 Boolean
문자열 42는 숫자42로, boolean타입의 true는 숫자 1로 변경
42==1이라는 의미로 결과는 false가 출력
<!DOCTYPE html>
<meta charset="UTF-8">
<script>
alert("42" == true);
</script>