JavaScriptがFirefoxで正常なIEでエラーを報告するいくつかの例



1.jsonデータに余分なコンマ:
 
コードvar man={name:''zhang'  } 最後にコンマをもう一つ出す.
 
FireFoxで正常に、
 
IEでエラーが発生します.識別子、文字列または数字(Expected identifier、string or number)が不足しています.
 
このようなエラーはファイルの中ではあまり見つけられません.ultreditの正規表現「、[^t^p]+」でこのようなエラーを探しています.  余分なコンマを削除してもいいです.
 
 
 
2.jsonキーのペアのキーはIEの保留文字を侵犯しました.
 
    jsonを定義します.var  test={export:'…'}  , をクリックします
 
FireFoxで正常に、
 
IEでエラーが発生します.識別子、文字列または数字(Expected identifier、string or number)が不足しています.
 
他のキーに修正したら、exportxなら大丈夫です.IEにはこのようなキーワードがありますか?他のものを残しましたか?知るよしがない.でもこのような問題はJsonを定義する時本当に注意しなければならなくて、そのように思いのままにすることができません.
 
嬉しいことに、西門兄弟の提示によって、Json名に引用符を付けると後顧の憂いがなくなります.
 
var test=''export':''  }
 
 
 
 
参考:
 
Javascript留保字(Javascript Rescerved Words)
 
 
 
 
 
 
3.json値を取る時、エラーを報告する「対象はこの属性と方法をサポートしていません.(object doesn't support this property or method)」:
 
   元のコードはjqgridから行データを読み出して処理します.
 
//    jqgrid  ,     JSON :
//  {"rn":"1",...,"WorkType":"  " }

var rowData = jqgrid_Samples_tab.getRowData( ids[i] ); 

cWorkType = rowData["WorkType"];
     実行  WorkType=rowData[WorkType]はエラーです.WorkType=rowData.WorkTypeに変更しても同じです.
 
その後、var WorkType=rowData[WorkType]に変更すればいいです.また、変数名とJSONキーの名前が違っても、エラーが発生しないことが分かりました.cWorkType=rowData[WorkType]も正常に動作します.
 
 
     JavaScriptでは、変数の定義に1つのvarを加えると変数が局所変数に制限されます.そうでなければ、デフォルトは大域変数です.変数範囲をテストするために、IEでJSONに対する影響や変数名とJSONキー名の同名の場合は、単独でテストプログラムを行いましたが、同様の問題は発見されませんでした.
 
    どのような原因でこのエラーが発生しましたか?今後も同様の問題を処理する際には、グローバル変数を使用しないように注意してください.あるいは変数名はJSONキーと同名ではないです.