-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathequality.ts
40 lines (35 loc) · 1.11 KB
/
equality.ts
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
32
33
34
35
36
37
38
39
40
// @ts-ignore
console.log(5 == "5"); // 文字列は数値に変換されtrue
// @ts-ignore
console.log(5 === "5"); // 文字列は数値に変換されfalse
// @ts-ignore
console.log("" == "0"); // 両方とも文字列で明らかに等しくないためfalse
// @ts-ignore
console.log(0 == ""); // 0と空文字列("")はfalsy(falseのように振る舞う)であるため==を使った比較ではtrue
// @ts-ignore
console.log("" === "0"); // ===は厳密なのでfalse
// @ts-ignore
console.log(0 === ""); // ===は厳密なのでfalse
// @ts-ignore
// ==/===は、2つのオブジェクトの構造を比較したい場合は使えない
console.log({a:123} == {a:123}); // false
// @ts-ignore
console.log({a:123} === {a:123}); // false
// IDでチェックして比較できる
type IdDisplay = {
id: string,
display: string
}
const list: IdDisplay[] = [
{
id: 'foo',
display: 'Foo Select'
},
{
id: 'bar',
display: 'Bar Select'
},
]
const fooIndex = list.map(i => i.id).indexOf('foo');
console.log(fooIndex); // 0
console.log(list[fooIndex].display); // Foo Select