2016-05-17 5 views
0

に表示されたJavaScriptエラーを解決:は、私は、以下の機能を持っている私のJSコードでのみサファリ

function clear_results(flow = false) { 
    //do some stuff 
} 

これはChromeとFirefoxの上で正常に動作しますが、サファリでエラーが発生します。

SyntaxError: Expected token ')'

function clear_results(flow) { 
    //do some stuff 
} 

問題を修正しますが、指定しない場合は、デフォルト値のfalseを設定します。ありがとう

答えて

1

に関数内で使用すると、デフォルトのパラメータを設定する方法を、それをチェックしES6に登場し、現在のSafariでサポートされていません。 「default function parameters」の行にあるhttp://kangax.github.io/compat-table/es6/を見ると、この機能をサポートしているブラウザを確認できます。ここ

function clear_results(flow) { 
    flow = flow || false; 
    //do some stuff 
} 

であるか、または(Set a default parameter value for a JavaScript functionに従って)

function clear_results(flow) { 
    flow = typeof flow !== 'undefined' ? flow : false; 
    //do some stuff 
} 
1

これを解決する正しい方法は、すべてのブラウザで機能する方法です。デフォルト引数の値を指定するために使用される構文が間違っていないですが、それはすべてのブラウザでサポートされる前に、それはしばらくだろうということ

function clear_results(flow) { 
    if(typeof flow === 'undefined') { 
    flow = false; 
    } 
    //do some stuff 
} 

注意。

0

flow = typeof flow !== 'undefined' ? flow : false; 
関連する問題