+ JavaScript の質問用スレッド vol.74 + at HP
[2ch|▼Menu]
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