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<br>
firefox下测试,引擎会忽略33后的逗号,可以通过语法检查,在执行期也不会报错
IE6/7下测试,语法分析期就报错了,当然也不会进入执行期了。
不过在IE8下已经修复此问题,不会报错了。其它浏览器也不会报错。
总结下:此错误很难发现,经常是不小心就加了个逗号,或者定义了一个很多属性的对象或数组后来又要删除其中的某些而不小心留下了多余的逗号。
复制代码 代码如下:
//不规范的写法
var p = {name:"Jack",age:33,};
var ary = ["one","two","three",];
//规范的写法
var p = {name:"Jack",age:33};
var ary = ["one","two","three"];
此外,定义数组直接量时也可能碰到这个问题,如数组最后多了个逗号
复制代码 代码如下:
var ary = [1,2,];
console.log(ary.length);
IE6/7/8 输出length为3,IE9及其它浏览器为2。ECMAScript 5 11.1.4 其中有段说明了应该忽略最后的逗号。但直到IE9才实现该规范。其它浏览器则没问题。
ECMAScript 5 11.1.4 写道:
Array elements may be elided at the beginning, middle or end of the element list. Whenever a comma in the element list is not preceded by an AssignmentExpression (i.e., a comma at the beginning or after another comma), the missing array element contributes to the length of the Array and increases the index of subsequent elements. Elided array elements are not defined. If an element is elided at the end of an array, that element does not contribute to the length of the Array.
有人曾经利用了数组的这个特性创造出了所谓《全世界最短的IE判断》
复制代码 代码如下:
var ie = !-[1,];
alert(ie);
但在IE9下被终止了。不要利用这个Bug去判断浏览器。
JSON
在JSON格式中,逗号是多个属性键值对间的分隔符,例如:
var json = { id: 1, name: 'heero' };
但在编程的时候,很容易会画蛇添足,在最后一对键值对后也加上了逗号:
var json = { id: 1, name: 'heero', };
在这种情况下,IE6、7会报错,但IE8以及其他浏览器则没有问题。
数组
在数组中,逗号是元素间的分隔符,例如:
var arr = [1, 2, 3];
同样地,我们也有可能不小心在最后一个元素后加了逗号:
var arr = [1, 2, 3,];
凭直觉来说,这应该是错误的语法。但实际上,所有浏览器都对这种情况实现了兼容,包括IE6。考虑这样一段示例代码:
var arr = [1, 2, 3,];
for (var i = 0; i < arr.length; i++) { alert(arr[i]); }
在IE以外的浏览器上,均依次输出1、2、3;但在IE浏览器上,却是依次输出1、2、3、undefined。明显地,IE在那个多余的逗号后加了一个undefined元素。
再考虑另一种情况,多余的逗号不在末尾,而是在中间:
var arr = [1, 2,, 3,];
for (var i = 0; i < arr.length; i++) { alert(arr[i]); }
所有浏览器均输出1、2、undefined、3,可见处理方式是一样的,就是在多余的逗号前插入一个undefined元素。
相关推荐:
从“官网扒下来”看企业数字化转型的未来,摄影营销策略推广文案
SEO分类:从基础到进阶,全面解析SEO优化的关键要素,新建设网站排名
360ai问答-智能时代的全能助手,未来的智慧生活,ai生成白底
ChatGPT诞生背景:人工智能如何突破语言的边界,ai辅助市场调研
seo需要学些什么内容,学seo的基础 ,中国ai公司年收入
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
SEO引擎优化方法-让你的网站流量暴增的实战指南,ai智慧树
ChatGPT宕机恢复时间如何解决用户焦虑与技术背后的故事,ai人工智能写作火山
SEO学费多少钱?揭秘SEO培训的投资价值与回报!,郴州网站推广多少钱一个
SEO模块:提升网站排名,驾驭数字营销未来,营口网站建设制作平台
seo网站反链是什么,网站反链怎么做 ,ai插画头像卡通
AI热门软件,未来科技的钥匙
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新
智能AI写作生成:如何借助人工智能提升创作效率与质量
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
高效创作之路:文章AI生成器的力量
ChatGPT无法加载?检查您的网络设置并尝试重启Chat,ai写作怎么写作文的
ChatGPT错误处理与异常情况解决方法:让你的AI助手更加智能与可靠,智能ai鼠标ai智能语音
SEO做网站点击:提升网站流量的关键策略,国内ai写作论文
360AI写作怎样?助力创作的新风尚,ai到访
如何选择适合你的AI工具?全面解析AI工具哪个好用
ChatGPTWindows版本:让AI助手成为你的工作与生活得力助手,Ai相减变形
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai
英语日记AI生成:轻松提升英语水平的智能助手
亚马逊产品seo什么意思,亚马逊平台产品专业术语 ,小新同学ai
软件AI:颠覆未来的智能革命
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
SEO基础知识解析:如何提升网站排名,助力企业成长,毕节企业建设网站
ChatGPT的诞生,预示着人工智能大规模应用的时代已经来临,ai此生不渝
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
SEO提高:如何通过精准优化让网站流量翻倍,优化排名seo加盟费用
SEO获取流量的必杀技:如何通过优化轻松提升网站排名,德州全网营销推广价格
未来写作新方式原创AI文章的无限可能
如何查文章AI率?全面解析AI文章检测工具及技巧
线上AI写作免费一键生成,轻松提升写作效率,解放创作思维
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
Bing学术搜索结果不显示时间?如何解决这一问题,提升学术研究效率!,ai怎么参考线
seo要学什么技术,seo要学什么技术好 ,ai.fale
ChatGPT免费版下载:智能对话助手带来的全新体验,电脑怎么下载Ai微认证
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
从语言助手到智能生活伙伴,未来的智能助手如何改变我们的生活,网站建设分站公司
SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
ChatGPT为什么用不了了?背后的真相揭秘!,ai写作专家收费吗
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工
ChatGPT怎么打不开了?解决办法,轻松恢复畅通无阻!,ai订酒店ai对话