선생님 질문있습니다.
비교 연산자를 사용 할 때는 숫자 변환을 안하는건가요?
console.log("3" > "1");
위의 비교 연산은 숫자 3과 숫자 1로 비교를 하는게 아니고 String타입으로 유니코드 등록 순서로 비교하는건가요?
혹시
console.log(3 > "2");
코드의 결과가 true가 나오는데 한쪽만 string일 경우니까 false가 나올줄 알았는데 true가 나오는 것은 "2"를 숫자 2로 변환한것으로 봐도 되는건가요?
그렇다면 console.log("3" > "1"); 의 경우도 숫자로 비교한건가요?
답변 1
8
좋은 질문입니다. 헷갈릴 수도 있습니다. 설명을 추가해야 되겠습니다.
한 쪽이 Number 타입이면 우선 다른 쪽의 값을 Number 타입으로 변환을 시도합니다. 이것은 비교하기 전에 우선 타입을 맞추기 때문입니다.
1. (3 > "2")에서 3이 Number 타입이므로 먼저 "2"를 Number 타입으로 변환을 시도하며, 변환할 수 있으므로 2로 변환하여 비교합니다. 모두 Number 타입이므로 비교할 수 있으며 true가 됩니다.
2. ("A" > 2)에서 "A"를 Number 타입으로 변환할 수 없으며, 타입이 다르므로 false가 됩니다.
3. ("A" > "2")는 모두 타입이 같으며 String 타입이므로 유니코드 등록 순서로 비교합니다. "A"는 0065이고 "2"는 0050이므로 true가 나옵니다.
4. ("3" > "2")는 모두 타입이 같으며, "3"의 유니코드 포인트 값은 0051입니다.
프론트엔드 부트캠프 가기 전, 짧은 감사 인사드립니다!
2
109
2
섹션10 3. Object 프리미티브 값 구하기에서 질문있습니다.
1
149
2
섹션3의 1강 연산자, 표현식 강의에서 표현식 질문이 있습니다.
0
140
2
섹션 1. 6번째 강의 질문입니다.
1
247
1
선생님 Objcet 질문 있습니다.
0
299
2
forEach문을 활용한 코딩시간 풀이
0
617
1
sort 코딩 시간 풀이
0
292
1
코딩 시간 풀이 올려봅니다.
0
229
1
인덱스 코딩시간 문제풀이
0
382
1
for문 코딩 시간 답제출
0
307
1
3:39 sort에 들어가서 one,two 파라미터질문입니다.
0
194
0
퀴즈 질문 및 정답
0
356
1
오브젝트
0
283
1
인스턴스 목적
1
239
1
[코딩시간 01] 3항 연산자로 작성했을 때, 각 값..?
0
269
1
Undefined === Null; // true???
0
194
1
indexOf의 파라미터에 음수를 작성 했을때에 대한 질문입니다.
0
1031
5
length 값 변환 논리에 대한 질문입니다.
0
211
1
상수 변수 선언에 대해
0
235
1
코딩 시간 (for문) 풀이
0
255
1
Object vs object
1
502
1
코딩 시간 풀이입니다.
0
199
1
log(add(1, 2, 3, 4));
0
182
1
코딩시간 답 제출
0
199
1





