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

Javascript
JavaScript教程:浏览器对象层次及其主要作用
JavaScript教程:文档对象功能及其作用
JavaScript教程:JS对象系统的使用范例
JavaScript教程:窗口及输入输出
JavaScript教程:简单的输入、输出例子
JavaScript教程:JS窗口及输入输出范例
JavaScript教程:JavaScript窗体基础知识
JavaScript教程:JS窗体中的基本元素
JavaScript教程:用JS脚本实现Web页面信息交互范例
JavaScript教程:什么是框架?
JavaScript教程:如何访问框架?
JavaScript教程:用JS实现更复杂的交互范例
JavaScript静态页面值传递:URL篇
JavaScript静态页面值传递:Window.open篇
JavaScript静态页面值传递:Cookie篇
JavaScript中sort排序函数
JavaScript中splice数组函数
JavaScript中split字符串函数
JavaScript中small对象函数
JavaScript:世界上误解最深的语言

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 280 ::
收藏到网摘: 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后面的大括号不要在新行起用,避免被自动补全分号;
虽然很简单,但对我是今天的新知之一;^__^