当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)

Javascript
Javascript常用运算符(Operators)-javascript基础教程
JS是否可以跨文件同时控制多个iframe页面的应用技巧
不用ajax实现点击文字即可编辑的方法
用javascript来实现动画导航效果的代码
javascript支持firefox,ie7页面布局拖拽效果代码
IE与Firefox下javascript getyear年份的兼容性写法
javascript 不让鼠标事件触发
一个简单横向javascript日期控件
使Ext的Template可以解析二层的json数据的方法
表单项的name命名为submit、reset引起的问题
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
两个DIV等高的JS的实现代码
支持IE和firefox的js代码美化加亮源码
2007/12/23更新创意无限,简单实用(javascript log)
DOMAssitant最新版 DOMAssistant 2.5发布
用js实现的页面关键字密度查询代码
Javascript函数加壳多用于事件绑定
收集的几个不错的javascript类小例子
javascript下function声明一些小结
JS的replace方法与正则表达式结合应用讲解

Javascript 中的 JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 346 ::
收藏到网摘: n/a

今天在看《Extjs中文手册》的时候,写了四五行样例代码,结果IE和Firefox一直报错不通过。 看代码:
HTML:
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>index</title>
<link rel="stylesheet" href="resources/css/ext-all.css" />
<script type="text/javascript" src="adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-all.js"></script>
<script type="text/javascript" src="index.js"></script>
<script type="text/javascript">
Ext.onReady(myNameSpace.app.init, myNameSpace.app);
</script>
</head>
<body>
<div id="mydiv"></div>
<p id="1">1</p>
<p id="2">2</p>
<p id="3">3</p>
<p id="4">4</p>
</body>
</html>

index.js内容:
复制代码 代码如下:

/*
Author:binarytree
*/
// 填充图片的本地引用
Ext.BLANK_IMAGE_URL = 'resources/images/default/s.gif';
// 命名空间
Ext.namespace('myNameSpace');
// 创建应用程序
myNameSpace.app = function()
{
return
{
init: function()
{
alert('程序初始化完毕');
}
};
}();

网上索引一番,等到如下结果:ECMAScript规定在有些情况下,可以对JavaScript语句执行自动分号补全,return就是其中之一;
Certain ECMAScript statements (empty statement, variable statement, expression statement, do-while statement, continue statement, break statement, return statement, and throw statement) must be terminated with semicolons. Such semicolons may always appear explicitly in the source text. For convenience, however, such semicolons may be omitted from the source text in certain situations. These situations are described by saying that semicolons are automatically inserted into the source code token stream in those situations.
我index.js里的第11行处,在JavaScript解析引擎解析的时候自动补全了分号,导致后面的语句不能执行;
解决办法:return后面的大括号不要在新行起用,避免被自动补全分号;
虽然很简单,但对我是今天的新知之一;^__^