1

次のコード ブロックを参照してください。最適なオプションはどれですか? 基本的にみんな同じことをしている

例 1

var otherVars1
var otherVars2
var otherVars3
var valid; // create a boolean variable
// some precondition to set valid to true or false
.... 

if (valid || someRegex.test(value)) {
  ...
}

例 2

var otherVars1
var otherVars2
var otherVars3

// create a function that return a boolean
function isValid() {
  ...
  return Boolean
}

if (isValid() || someRegex.test(value)) {
 ...
}

例 3

var otherVars1
var otherVars2
var otherVars3

// use self-invoke anonymous function directly
if ((function() {
...
return Boolean })() || someRgex.test(value)) {
  ...
}

これら 3 つの例を比較すると、次の理由から、自己呼び出し匿名関数 (例 3) を使用することを好みます。

  • 不要な var を作成してメモリを割り当てる必要がない (例 1: 有効、例 2: isValid)

  • 管理と整理が容易になるように、コードを 1 つずつ、またはモジュールごとにきれいに保つ

  • 自己完結型であるため、自己呼び出し匿名関数の外部の変数が汚染されません

上記の点で間違っている場合は訂正してください。また、あなたの好みと理由を教えてください。

4

1 に答える 1

1

を使用できると思いますがimmediate invocation of function expressions、 内での使用を避けることifができ、以下のように使用できます。

global scopeこれにより、変数宣言、関数などの不必要が回避されます。

(function() {
  var otherVars1
  var otherVars2
  var otherVars3
  var valid; // create a boolean variable
  // some precondition to set valid to true or false
  .... 

  if (valid || someRegex.test(value)) {
    ...
  }

})();
于 2016-11-16T03:08:36.283 に答える