偉大な Douglas Crockford によって指示された JSLint の非常に厳格な規則によると、すべての式の末尾にはセミコロンが必要です。JSON オブジェクトの宣言は式です。末尾にセミコロンを追加すると、ゴールデンになるはずです。JavaScript 自体はすべての式をセミコロンで終了することを強制しませんが、これを行わないと奇妙なケースでコンパイルの問題が発生する可能性があるため、JSLint はセミコロンで終了することを強制します。JSLint を使用することで、言語の仕様で規定されているものよりも厳密な JavaScript のサブセットを使用することに同意していることを認識する必要があります。ただし、トレードオフは、このサブセットは言語の完全なセットよりもエラーが発生しにくいため、より安全に使用できることです。
{
"SharePath": "\\\\172.26.168.60\\main\\Temp\\Webclient",
"LocalFilePath": "C:\\\\Builds\\WebClient",
"BuildCount": "10",
"AppVersions": [
{
"VersionName": "hotfix",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_hotfix"
},
{
"VersionName": "main",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_main"
},
{
"VersionName": "master",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_master"
}
]
}; // <--- ';' HERE
オンラインの JSLint がここでオブジェクトを渡すように見えるのに対し、VS2012 JSLINT が渡さない理由は、オンラインの JSLint がオブジェクトを JSON オブジェクトとして扱い、オブジェクトのその部分のみをチェックしているためです。使用している VS2012 は、JSON ファイルを完全な JavaScript ファイルとして扱い、その JSON オブジェクトをより大きな JS 式の一部として (すべての JSON オブジェクトが最終的にそうであるように) 扱っているため、オンライン JSLint エディターよりも多くのことをチェックしています。 . (オンラインJSLintがない式の構文をチェックしています。簡単に言えば、JSLintオンラインツールはデフォルトでシンプルモードになり、VS2012が実行されます。オンラインJSLintが完全に実行されるように強制するforへの回答を更新しましたJS 式チェック これを onlie ツールに貼り付けてみて、何が起こるか見てみましょう. (HINT JSLint は幸せではありません)
var test2 = "Hey JSLint Im a JS file, not a JSON object danm it!";
{
"SharePath" : "\\\\172.26.168.60\\main\\Temp\\Webclient",
"LocalFilePath" : "C:\\\\Builds\\WebClient",
"BuildCount" : "10",
"AppVersions" : [
{
"VersionName": "hotfix",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_hotfix"
},
{
"VersionName": "main",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_main"
},
{
"VersionName": "master",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_master"
}
]
}