https://developer.mozilla.org/en-US/docs/Web/API
프론트가 너무 약해서
오늘부터 조금씩 다시 공부해보려고 하는 중!
일이 너무 바빠서 거의 몇달을 안하고 쉬었네ㅜㅠ 다시 조금씩이라도 해보자
알든 모르든 문서를 무조건 한번은 훑어보는게 목표이다
정확히 방식을 모르더라도 이런게 있었구나 해서 필요할 때 기능을 찾아볼 수 있도록 하기 위함이다
mozilla 는 한국어 번역본이 있다.
굉장히 좋다...b
https://developer.mozilla.org/ko/docs/Web/JavaScript/Equality_comparisons_and_sameness
=== 엄격 동등 비교 (삼중)
== 느슨한 동등 비교(이중)
Object.is()
===를 사용하는 엄격한 동등 엄격한 동등은 두 값이 같은지 비교합니다. 비교되기 전 어떠한 값도 암시적으로 다른 값으로 변환되지 않습니다. 값의 형식이 다른 경우, 두 값은 동등하지 않다고 간주됩니다. 값의 형식이 같고 숫자가 아니고 값이 같다면 두 값은 동등하다고 간주됩니다. 마지막으로 두 값이 모두 숫자인 경우, 둘 다 NaN이 아닌 동일한 값이거나, 하나가 +0이고 하나가 -0이면 동등한 것으로 간주됩니다.
==를 사용하는 느슨한 동등 느슨한 동등은 대칭입니다. 즉, A == B는 A와 B가 어떤 값이든 항상 B == A와 동일한 의미 체계를 가집니다(적용된 변환 순서 제외). ==를 사용하여 느슨한 동등을 수행하는 동작은 다음과 같습니다.
Object.is()를 사용한 동일 값 동등 동일 값 동등은 두 값이 모든 맥락에서 기능적으로 동일한지 여부를 결정합니다. (이 사용 사례는Liskov 대체 원칙 사례를 보여줍니다.) 변경할 수 없는 속성을 변경하려 하는 경우 한 사례가 발생합니다.
Same-value-zero equality
function sameValueZero(x, y) {
if (typeof x === "number" && typeof y === "number") {
// x와 y는 같거나(-0과 0일 수 있음) 둘 다 NaN입니다.
return x === y || (x !== x && y !== y);
}
return x === y;
}
x | y | == | === | Object.is | SameValueZero |
undefined | undefined | ✅ true | ✅ true | ✅ true | ✅ true |
null | null | ✅ true | ✅ true | ✅ true | ✅ true |
true | true | ✅ true | ✅ true | ✅ true | ✅ true |
false | false | ✅ true | ✅ true | ✅ true | ✅ true |
'foo' | 'foo' | ✅ true | ✅ true | ✅ true | ✅ true |
0 | 0 | ✅ true | ✅ true | ✅ true | ✅ true |
+0 | -0 | ✅ true | ✅ true | ❌ false | ✅ true |
+0 | 0 | ✅ true | ✅ true | ✅ true | ✅ true |
-0 | 0 | ✅ true | ✅ true | ❌ false | ✅ true |
0n | -0n | ✅ true | ✅ true | ✅ true | ✅ true |
0 | false | ✅ true | ❌ false | ❌ false | ❌ false |
"" | false | ✅ true | ❌ false | ❌ false | ❌ false |
"" | 0 | ✅ true | ❌ false | ❌ false | ❌ false |
'0' | 0 | ✅ true | ❌ false | ❌ false | ❌ false |
'17' | 17 | ✅ true | ❌ false | ❌ false | ❌ false |
[1, 2] | '1,2' | ✅ true | ❌ false | ❌ false | ❌ false |
new String('foo') | 'foo' | ✅ true | ❌ false | ❌ false | ❌ false |
null | undefined | ✅ true | ❌ false | ❌ false | ❌ false |
null | false | ❌ false | ❌ false | ❌ false | ❌ false |
undefined | false | ❌ false | ❌ false | ❌ false | ❌ false |
{ foo: 'bar' } | { foo: 'bar' } | ❌ false | ❌ false | ❌ false | ❌ false |
new String('foo') | new String('foo') | ❌ false | ❌ false | ❌ false | ❌ false |
0 | null | ❌ false | ❌ false | ❌ false | ❌ false |
0 | NaN | ❌ false | ❌ false | ❌ false | ❌ false |
'foo' | NaN | ❌ false | ❌ false | ❌ false | ❌ false |
NaN | NaN | ❌ false | ❌ false | ✅ true | ✅ true |
'Web > JavaScript' 카테고리의 다른 글
강의들으면서 정리하기 4 (0) | 2023.09.01 |
---|---|
강의들으면서 정리하기3 (0) | 2023.08.31 |
강의 들으면서 정리하기2 (0) | 2023.08.30 |
강의 들으면서 정리하기1 (0) | 2023.08.29 |
[mozilla api] drag and drop (0) | 2023.08.29 |