-
Notifications
You must be signed in to change notification settings - Fork 4
/
921.txt
51 lines (37 loc) · 1.32 KB
/
921.txt
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
41
42
43
44
45
46
47
48
49
50
51
[1] [CITE[IRC logs: freenode / #whatwg / 20140523]]
( ([TIME[2014-05-25 18:42:17 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20140523>
[2]
[CODE[toggle]] の第2引数は [CODE[boolean]] 型なのですが、
[CODE[false]] のつもりで [CODE[undefined]] を渡すと引数なし → 真、
と解釈されてしまう罠があります。
例えば、
[PRE(JS code bad example)[
var opts = {};
if (...) {
opts.enabled = true;
}
element.classList.toggle ('somewhat', opts.enabled);
]PRE]
... は条件に合わせて [CODE[[[class][class=""]]="somewhat"]]
を指定するかどうかを変えているつもりが、常に[[真]]になってしまいます。
[PRE(JS code good example)[
var opts = {enabled: false};
if (...) {
opts.enabled = true;
}
element.classList.toggle ('somewhat', opts.enabled);
]PRE]
... や、
[PRE(JS code good example)[
var opts = {};
if (...) {
opts.enabled = true;
}
element.classList.toggle ('somewhat', !!opts.enabled);
]PRE]
... のように常に値が渡るようにする必要があります。
[3]
これ案外はまりがちなので注意。
[4]
add, append, remove, delete みたいなの覚えるの難しいから [CODE[toggle]] は1つ覚えておけばどっちだったか気にしなくていいというのが便利。