[解決済み] JavaScriptで「!--」は何をするものですか?
2022-02-02 05:26:21
質問
次のようなコードがあります。 この質問 ):
var walk = function(dir, done) {
var results = [];
fs.readdir(dir, function(err, list) {
if (err)
return done(err);
var pending = list.length;
if (!pending)
return done(null, results);
list.forEach(function(file) {
file = path.resolve(dir, file);
fs.stat(file, function(err, stat) {
if (stat && stat.isDirectory()) {
walk(file, function(err, res) {
results = results.concat(res);
if (!--pending)
done(null, results);
});
} else {
results.push(file);
if (!--pending)
done(null, results);
}
});
});
});
};
私はそれを追いかけようとしているのですが、最後のほうでこう書かれている以外はすべて理解しているつもりです。
!--pending
. この文脈で、このコマンドは何をするのでしょうか?
編集部:さらなるコメントには感謝しますが、この質問は何度も回答されています。とにかくありがとうございました。
どのように解決するのですか?
!
は値を反転させ、逆のブール値を与えます。
!true == false
!false == true
!1 == false
!0 == true
--[value]
は、ある数値から1を引き、その数値を加工して返します。
var a = 1, b = 2;
--a == 0
--b == 1
だから
!--pending
は、保留中のものから1を引き、その真偽値の逆を返します (それが
0
).
pending = 2; !--pending == false
pending = 1; !--pending == true
pending = 0; !--pending == false
そして、そう、ProTipに従いましょう。 これは他のプログラミング言語ではよくあるイディオムかもしれませんが、ほとんどの宣言型JavaScriptプログラミングでは、これはかなり異質なものに見えます。
関連
-
[解決済み】Uncaught TypeError: nullのプロパティ'value'を読み取ることができない
-
[解決済み】module.exports "モジュールが定義されていません"
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み】中央値の計算 - javascript
-
[解決済み] '+='と'=+'の違いは何ですか?[重複】について]
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】Node.js fs.readdir 再帰的ディレクトリ検索