+ JavaScript の質問用スレッド vol.74 +
at HP
857:Name_Not_Found
09/11/25 12:32:53
まじで!?
undefined に比べたら null の方がよほど使ってるけど。
858:Name_Not_Found
09/11/25 12:37:36
return ""
クソワロス
859:Name_Not_Found
09/11/25 13:08:25
undefinedは滅多に使わないな。
使わないと言うか、大抵は宣言するから使わなくて済むことが多いな。
objを確認したい時にnullなら
if (! obj) {}
ってやるけど、undefinedは
if (typeof obj === 'undefined') {}
ってやってる
860:Name_Not_Found
09/11/25 13:25:20
>>856
すまん語弊があった
返値などで空であることを伝える必要があるなら俺もnullを使う
まさに明示する状況だし
だけどvoid(引数無しreturn)で返値がundefinedになることのほうが断然多いんだよな
変数やプロパティの初期値もundefinedだし
undefinedに比べて滅多にnullが使われないということが言いたかった
>>859
区別したいなら、nullチェックのほうにtypeofを使うべきじゃないか?
861:Name_Not_Found
09/11/25 14:00:04 txBM9G+t
だ、だれか>>850を解説してくれる御仁はござらぬか…
手元でコピペして7行目直して、targetに適当なエレメントノード渡したけど動かず。
missing ; after for-loop initializer
[Break on this error] for (let i = 0, len = textNodes.snapshotLength; i < len; i++) {¥n
ってなるけど、; は足りてるような気が…letのせい?
あと、ざくっと調べたんですが、IE6では動かない、ですかね?
862:Name_Not_Found
09/11/25 14:05:04
>>860
undefinedは'undefined'だからtypeofで確認してる
863:Name_Not_Found
09/11/25 14:19:03
>>861
javascript1.7だからIEはダメ
よく読んでないから保証しないけどvarに置き換えても動くはず
>>862
nullだってnull型じゃ・・・げ、"object"かよ
というかobj === nullでいいのか
864:844
09/11/25 14:20:31 jZeLnWCW
>>844です。
確かにbaffのところはおかしいです。
何か他の処理が挟まってたのか、または気が狂ってたかの、
どちらかかと思います…
865:Name_Not_Found
09/11/25 14:35:10
>>861
>>851が言っている「悪化」の意味は
・document.evaluate がIEにはない
> var textNodes = doc.evaluate('descendant::text()', target, null, 6, null);
・let がIEにはない
let は javascript 1.7 から。
わざわざ遅くなる let を使う意味はない。
・安全ではない参照
質問者がテストするときに $3 が変化する可能性が高い。
簡潔に書こうとする場所が間違ってるよ。
insertBefore のところを外部に出して汎用化した方が
読みやすくて良いじゃない。
function attachElement(name, node) {} と言うのを作って
ループ内は
attachElement('strong', textNode);
だけで終わった方が良いよ、後から直しやすい。
866:Name_Not_Found
09/11/25 14:36:07
>>854
ナルシストじゃなく、ナルシシスト。
867:Name_Not_Found
09/11/25 14:44:38 txBM9G+t
>>865
なるほど。
普段ちゃんと動くJSしか作ってないので、1.7とか疎くて。
古いIEが駆逐されるまでに勉強しようと思いました。
868:Name_Not_Found
09/11/25 15:39:48
>確かにbaffのところはおかしいです。
スペルからしておかしいことは気づいているのか?w
869:844
09/11/25 18:07:00 jZeLnWCW
べ、べつにbufferって書きたかったんじゃないんだから…///
870:Name_Not_Found
09/11/25 21:07:05
>>865
IE はどうでもいいが let が遅くなるのと安全ではないのをもうちょっと詳しく
871:Name_Not_Found
09/11/26 00:23:15
var undefined;
if( hoge === undefined )
でいいじゃん
グローバル変数一個使うけど
872:Name_Not_Found
09/11/26 00:34:41
(・・;)エ?
undefined はグローバル変換として定義済み。
わざわざ宣言して使うのは、ローカル変数にする場合。
873:Name_Not_Found
09/11/26 00:35:56
× グローバル変換
○ グローバル変数
874:Name_Not_Found
09/11/26 00:43:24
>>872
window.undefinedは書き換え可能なために不確実
typeofや宣言だけのローカル変数は確実
書き換えられる心配をする必要があるのかは俺にはわからんがね
875:Name_Not_Found
09/11/26 00:56:15
if( typeof(example) == "undefined" )
876:Name_Not_Found
09/11/26 01:57:38
undefined のチェックはこうやるもの。
if (hoge === void 0)
877:844
09/11/26 02:53:28 shG1f8EJ
なんか自分のせいで>>835が置いてきぼりになったみたいで申し訳ない。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5388日前に更新/241 KB
担当:undef