뭔말인지 모르겟는데 아래 콘솔로그 4개 답을 나열하면
1. 객체 비교할때 메모리 주소로 비교하기때문에 서로 다름 -> false
2. 객체 속성 (name)의 값으로 직접 비교하기때문에 true
3. != 이건 다르면 true, 같으면 false 반환함
-> 이 연산자쓸때 자바스크립트에서는 형 변환 시키는걸로아는데 1 이랑 "1" 이랑 같은값임 -> true
4. !== 이건 타입이 모두 다르면 true 반환함 -> 1 이랑 "1" 이 값은 값지만 타입이 다름 -> true
나는야축구왕(weekday1035)2024-03-19 12:22
답글
와우 자세한 설명 감사
익명(121.135)2024-03-19 12:29
기억 가물가물한데 js에서 loose한 == 오퍼레이터 다룰 때는 왼쪽 operand 값을 먼저 읽고, 우측에 있는 operand를 왼쪽 operand 타입으로 변환한 다음에 값 계산함. 그래서 1 !== '1'은 우측의 '1'이 number 1로 바뀌고 같지 않다고 했으니까 false임.
근데 아래 1 !=== '1'은 strict한 오퍼레이터라서 양측 타입이 모두 같은지 아닌지부터 보는데 타입 자체가 숫자, string으로 다르니까 true 뱉은거.
딱지(210.183)2024-03-19 12:28
답글
ㅇㅋㅇㅋ 자바스크립트인데
옛날 C언어 때문에 햇갈렸음
!=(!==)가 == 반대고
!==(!===) 가 === 반대인 거지? 서로 한쌍씩
다르냐고 물어봤으니까 true가 나옵니다
ㅇㅋ
뭔말인지 모르겟는데 아래 콘솔로그 4개 답을 나열하면 1. 객체 비교할때 메모리 주소로 비교하기때문에 서로 다름 -> false 2. 객체 속성 (name)의 값으로 직접 비교하기때문에 true 3. != 이건 다르면 true, 같으면 false 반환함 -> 이 연산자쓸때 자바스크립트에서는 형 변환 시키는걸로아는데 1 이랑 "1" 이랑 같은값임 -> true 4. !== 이건 타입이 모두 다르면 true 반환함 -> 1 이랑 "1" 이 값은 값지만 타입이 다름 -> true
와우 자세한 설명 감사
기억 가물가물한데 js에서 loose한 == 오퍼레이터 다룰 때는 왼쪽 operand 값을 먼저 읽고, 우측에 있는 operand를 왼쪽 operand 타입으로 변환한 다음에 값 계산함. 그래서 1 !== '1'은 우측의 '1'이 number 1로 바뀌고 같지 않다고 했으니까 false임. 근데 아래 1 !=== '1'은 strict한 오퍼레이터라서 양측 타입이 모두 같은지 아닌지부터 보는데 타입 자체가 숫자, string으로 다르니까 true 뱉은거.
ㅇㅋㅇㅋ 자바스크립트인데 옛날 C언어 때문에 햇갈렸음 !=(!==)가 == 반대고 !==(!===) 가 === 반대인 거지? 서로 한쌍씩
무슨 말인지 이해함
ㅇㅇ 맞음 나도 잘못썼네 개똥같이 말해도 찰떡같이 알아들어줘서 ㄳ
https://ko.javascript.info/comparison
숫자가
아닌 타입을 숫자로 형변환시켜서 비교하는 기본 비교 연산이 있고 형변환이 없는 strict한 비교 연산으로 구분된다