2012-01-12 10 views

答えて

6

ifは、ではありません。の式です。値を返さず、関数呼び出しの中に入れることもできません。すなわち、これは無効である:

func(if (a) { ... } else { ... }); 

これは--theオペレータは式であり、値を返しif?:の主な違いです。 ifは声明です。ではなくは値を返し、どこでも使用することはできません。

あなたは三項演算子を避けるために持っている場合あなたの最善の策は何か行うことです:あなたはまた、||を使用して、同じ効果を得ることができます

if (url == "") { 
    url = "#some-page"; 
} 

load(url); 

を:

function (url) { 
    load(url || "#some-page"); 
} 

これが最短とありますあなたのコードを書くための最も慣用的な方法です。

$.history.init(function(url) { 
     if(url == ""){ 
      url = "#some-page"; 
     } 
     load(url); 
}); 
0

書き換えは無効です。これを試してみてください:

$.history.init(function(url) { 
     if(url == "") { 
     load("#some-page"); 
     } else { 
     load(url); 
     } 
}); 
0

あなたの書き換えコードなど

0

あなたはload関数の外にif文を必要とする、すなわち

$.history.init(function(url) { 
    if (url === "") { 
     url = "#some-page"; 
    } 
    load(url); 
}); 

url = urlが冗長運転であるとして、あなたはelse句を必要はありません。

1

if JSでは何も返しません。基本的にはload(undefined)です。

代わりにこれを試してみてください:

if (url === '') { 
    url = '#some-page'; 
} 

load(url); 

は値が存在する場合は、変更することは何もありませんので、あなたが、まったくelseする必要はありません。