[解決済み] void 0`とはどういう意味ですか?[重複]する
質問
Backbone.jsのソースコードを読んでいると、こんなことが書いてありました。
validObj[attr] = void 0;
とは何ですか?
void 0
? ここで使用する目的は何ですか?
どのように解決するのですか?
何をするのか
void 0
の意味は?
void
[MDN】です。]
は、引数を1つ取り、常に
undefined
.
例
void 0
void (0)
void "hello"
void (new Date())
//all will return undefined
何が言いたいんだ?
かなり無駄な気がしますよね。もし、常に
undefined
を使用することの何が問題なのでしょうか?
undefined
を使用します。
完璧な世界であれば、私たちは安全に
undefined
よりもはるかにシンプルでわかりやすい。
void 0
. でも、一応、今まで気がつかなかったのですが
これは完璧な世界ではありません
特にJavascriptに関しては。
を使用した場合の問題点は
undefined
は、その
undefined
は予約語ではありません(
は、実際にはグローバルオブジェクトのプロパティである
[wtfjs]
). つまり
undefined
は許される変数名なので、自分の気まぐれで新しい値を代入することができます。
alert(undefined); //alerts "undefined"
var undefined = "new value";
alert(undefined) // alerts "new value"
注:ECMAScript 5 以降をサポートする環境(つまり、実際には IE 8 以外のすべての環境)では、これはもはや問題ではなく、ECMAScript 5 で定義されている
undefined
プロパティは読み取り専用です (したがって、この変数をシャドウできるのは自分のローカルスコープだけです)。しかし、この情報は後方互換性のためにまだ役に立ちます。
alert(window.hasOwnProperty('undefined')); // alerts "true"
alert(window.undefined); // alerts "undefined"
alert(undefined === window.undefined); // alerts "true"
var undefined = "new value";
alert(undefined); // alerts "new value"
alert(undefined === window.undefined); // alerts "false"
void
一方、オーバーライドはできません。
void 0
意志
常に
戻る
undefined
.
undefined
は、ジャバスクリプトさんが決めることであれば、どんなものにもなります。
なぜ
void 0
具体的には?
なぜ
void 0
? の何がそんなに特別なのでしょうか?
0
? 同じように
1
または
42
または
1000000
または
"Hello, world!"
?
そして、その答えは、「はい、できます」であり、同じように動作します。を渡すことの唯一の利点は
0
他の引数ではなく
0
は短く、イディオム的である。
なぜ、今でも関係あるのでしょうか?
とはいえ
undefined
は、最近のJavaScript環境では一般的に信頼できますが、1つだけ些細な利点があります。
void 0
より短いです。この差は、コードを書くときに気にするほどではありませんが、大規模なコードベースでは十分な量になるため、ほとんどのコードミニファイアーでは、この差は
undefined
で
void 0
を使用すると、ブラウザに送信されるバイト数を減らすことができます。
関連
-
vueの補間表現とv-textディレクティブの違いについて
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】「.addEventListener is not a function」なぜこのエラーが発生するのか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] javascript:void(0)」とは何ですか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueにシンプルなメモ帳機能を実装
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
[解決済み] javascript:void(0)」とは何ですか?
-
[解決済み】if-elseの省略記法で2つ目の式を省略した場合