私はJSLintを使用していましたが、関数名の後にスペースを入れるとエラーが発生しました。なぜそれは悪いですか?関数名の後のスペースが間違っていますか?
function coolness() {
var hi = "this";
}
ERROR:行1文字19で問題: '涼しさ' と '(' の間に予期しないスペース
私はJSLintを使用していましたが、関数名の後にスペースを入れるとエラーが発生しました。なぜそれは悪いですか?関数名の後のスペースが間違っていますか?
function coolness() {
var hi = "this";
}
ERROR:行1文字19で問題: '涼しさ' と '(' の間に予期しないスペース
JSLintは同じくらい、それはJavascriptのスタイルチェッカーですとJavascriptの文法チェッカーではありません。それが使用するスタイルガイドラインはDouglas Crockfordによって書かれたものです。
スタイルの決定に同意しない人もいます。彼らは法律ではなく、あなたはそれらに従う必要はありません。 JSHintなどの代替JSリンターが存在します。
あなたに実行している特定のルールはです:
There should be no space between the name of a function and the (left parenthesis) of its parameter list.
Javascriptが空白と小文字が区別されません。あなたが気分を良くするならば、このスペースを追加することができます。 (ただし、標準ではありません)
ああ良いよ。情報ありがとうございます! – supercoolville
怒鳴るjavascriptのコードconvetionsをチェックし、あなたの答えを見つけるだろうしてください
。http://crockford.com/javascript/code.html#function
There should be no space between the name of a function and the ((left parenthesis) of its parameter list. There should be one space between the) (right parenthesis) and the { (left curly brace) that begins the statement body. The body itself is indented four spaces. The } (right curly brace) is aligned with the line containing the beginning of the declaration of the function.
機能の例:
function outer(c, d) {
var e = c * d;
function inner(a, b) {
return (e * a) + b;
}
return inner(0, 1);
}
匿名関数の例:
div.onclick = function (e) {
return false;
};
あなたの説明のための例は良いでしょう:) – yashhy
@yashhy非常によく仲間:) –
技術的に言えば、あなたのコードは完全に有効ですが、いくつかのコードスタイル標準では、このようなスペースがあってはならないことが指示されています(例えば、@Bodganが引用したもの)。
実際には、YUI CompressorやGoogle Closure Compilerのような多くのツールを使用してコードを圧縮すると、これらのスペースは完全に削除されます(@Bodganで引用される前後の中括弧を含む)。もちろん、有効なJSです。
According to Crockford、という名前機能については
、関数名と括弧の間にスペースを挿入しないでください:匿名機能については
function doStuff() {
//stuff here
}
を、function
キーワードと括弧の間にスペースを挿入してください:
function() {
//stuff here
}
IMHO(そしてCrockfordの)これは、2種類の機能を区別しやすくします。私はJSLintを使って一貫性と有効性があるので、自然には考えられない場所でもCrockfordのルールに固執すると思います。それらはJavascriptの事実上のコードスタイルルールです。別のものを使う本当に良い理由がない限り、私はそうしません。 (あなたはいつも別の方法でコード化しているので、Crockfordと同意しないのは本当に良い理由ではない) – rjmunro
@rjmunro +1 - コメントのため。現時点では、「なぜそれが悪いのかを説明する」ページ上の唯一の場所です(条約の規則を独断的に繰り返すことなく)。 –
私は両者を分けることができます。それに見合う特別なスタイルのルールを追加していますか?私はそうは思わない、FWIW、d3.jsライブラリはCrockfordの提案を破る。これは私によってはうまくいく。 –
あなたがjslintを書いたときに、ある種のかわいい高齢者が悪い気分にあったので、あなたがそれを使い続けるとあなたは絶えずになるので、それは悪いことです。 –
規約は、コードを読みやすくするのに役立ちます。多くのそのような機能にわたる一貫性は不可欠です。 – Gherman