js引擎对多余逗号的处理
2008-11-28 10:24
183 查看
这种错误已经我已经多次犯了,一次用Ext做abcc的demo,一次是abcc查询模块。
js报错分为两种:语法错误和运行错误
1、js引擎在代码载入时进行语法分析,如果js写的不规范则语法分析通不过。这时候的错误称为语法错误
2、语法分析通过了,js引擎会执行代码。执行期间发生的错误称为运行错误
不同引擎处理这2种错误的提示不太一样。如下:
var p = {name:"Jack",age:33,};//注意33后有个逗号
p.toString = function() {return "姓名:" +this.name + ",年龄:" + this.age};
console.log(p);
alert(p);//姓名:Jack,年龄33
firefox下测试,引擎会忽略33后的逗号,可以通过语法检查,在执行期也不会报错
IE6下测试,语法分析期就报错了,当然也不会进入执行期了。
不过在IE8下已经修复此问题,不会报错了。(公司没人装IE7,偶也无法测试)
在chrome下也没报错。
总结下:此错误很难发现,经常是不小心就加了个逗号,或者定义了一个很多属性的对象或数组后来又要删除其中的某些而不小心留下了多余的逗号。
//不规范的写法
var p = {name:"Jack",age:33,};
var ary = ["one","two","three",];
//规范的写法
var p = {name:"Jack",age:33};
var ary = ["one","two","three"];
ps:firefox下安装了firebug,IE6下安装了companion.js。这样就都可以用console.log来调试了
js报错分为两种:语法错误和运行错误
1、js引擎在代码载入时进行语法分析,如果js写的不规范则语法分析通不过。这时候的错误称为语法错误
2、语法分析通过了,js引擎会执行代码。执行期间发生的错误称为运行错误
不同引擎处理这2种错误的提示不太一样。如下:
var p = {name:"Jack",age:33,};//注意33后有个逗号
p.toString = function() {return "姓名:" +this.name + ",年龄:" + this.age};
console.log(p);
alert(p);//姓名:Jack,年龄33
firefox下测试,引擎会忽略33后的逗号,可以通过语法检查,在执行期也不会报错
IE6下测试,语法分析期就报错了,当然也不会进入执行期了。
不过在IE8下已经修复此问题,不会报错了。(公司没人装IE7,偶也无法测试)
在chrome下也没报错。
总结下:此错误很难发现,经常是不小心就加了个逗号,或者定义了一个很多属性的对象或数组后来又要删除其中的某些而不小心留下了多余的逗号。
//不规范的写法
var p = {name:"Jack",age:33,};
var ary = ["one","two","three",];
//规范的写法
var p = {name:"Jack",age:33};
var ary = ["one","two","three"];
ps:firefox下安装了firebug,IE6下安装了companion.js。这样就都可以用console.log来调试了
相关文章推荐
- 定义对象或数组直接量时不同引擎对多余逗号的处理
- js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
- 定义对象或数组直接量时不同引擎对多余逗号的处理
- js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
- js金额数字格式化实现代码(加减逗号处理)
- Javascript对json及array中多余逗号处理
- razor引擎中在js中处理@符号
- [乐意黎原创] Local 为德文时,小数点(点号)变成逗号时的JS 前端处理方法
- js金额数字格式化实现代码(三位加逗号处理保留两位置小数)
- Java拼接字符串时,多方法处理多余的逗号
- 常用的js处理方法(数字每隔三位加逗号分开,日期)
- JS货币逗号的处理
- js金额数字格式化实现代码(加减逗号处理)
- js金额数字格式化实现代码(三位加逗号处理保留两位置小数)
- IE兼容模式下面,js中的json字符串不能有多余的逗号
- js游戏小引擎 (2)—— 处理多边形
- 没有文件扩展“.js”的脚本引擎问题解决
- 页面前台通过JS访问WEB SERVICES,以及如何处理返回结果.
- js处理小数 , toFixed()的潜在问题
- js表单验证是否空值的简单处理办法