Dojo语法精讲
来源:互联网 发布:淘宝 印度伟哥 编辑:程序博客网 时间:2024/06/10 19:03
Dojo语法精讲
黄诚 整理
QQ群:65643887
第一句话分号;
;(function(){
这是出现在dojo.js文件中的第一句话。
它是来在每条语句结尾使用,表示语句结束的符号,其实有时候可能省略分号,解释器通常能正确识别JavaScript语句并执行。在ECMAScript标准中,分号即使一个可选的符号来表示语句的结束。
虽然可选,但应该意识到这是为了方便非专业用户而准备的。因此在使用JavaScript开发专业的程序时,应该在每条语句的结束加上分号,这可以保证程序有良好的结构而且避免了一些不可预知的错误:举例下面的就是由于省略了分号导致产生语法错误。
var a=1
/(b+)/.exec(“abbbc”)
alert(RegExp.$1)
这段代码第一行声明了一个变量并赋值为1,第二行用正则表达式提取一个字符串中的连续的b字符,第三行输出提取的字符串。尽管代码看上去正确,但执行时却会提示语法错误,原因在于第一行没有以分号结尾,于是解释器继续向下解析,看能否和上一行形成合法的语意,当遇到斜杠”/”时,解释器会认为这是一个除法符号,因为它能够跟上一行后面形成合法的语意,但在继续解释第二行时则会发生错误,所以应该在第一行结尾上加上分号。告诉解释器语句已经结束。
dojo全局变量的定义方法。
(function(){
…
if(typeof dojo == "undefined"){
this.dojo = {
_scopeName: "dojo",
_scopePrefix: "",
_scopePrefixArgs: "",
_scopeSuffix: "",
_scopeMap: {},
_scopeMapRev: {}
};
}
var d = dojo;
….
})();
typeof操作符号来获取一个变量所包含数据的类型,其语法为
typeof(变量名或常量)
例如:
var a = 1;
var b = 'true';
alert(typeof(a));
alert(typeof(b));
alert(typeof(dojo));
JavaScript中一共有9种数据类型,分别是:
未定义
Undefined
空
Null
布尔
Boolean
字符串
String
数值
Number
对象
Object
引用
Reference
列表
List
JavaScript中的对象其实就是属性(方法)的一个集合,并没有严格意义上类的概念。所以它提供一个简单的方式类创建对应,即大括号({})语法:
{
property1:statement,
property2:statement2,
…
propertyN:statementN
}
通过大括号括住多个属性或方法及其定义(这些属性或方法用逗号割开),来实现对象的定义,这段代码就直接定义个具有n个属性或方法的对象,其属性名和其定义之间用冒号(:)隔开。
this.dojo = {
_scopeName: "dojo",
_scopePrefix: "",
_scopePrefixArgs: "",
_scopeSuffix: "",
_scopeMap: {},
_scopeMapRev: {}
};
//调用dojo对象的属性scopeName
alert(dojo. scopeName);
匿名函数定义语法。
正常的函数定义为:
function functionName([arguments]){
Javascript statements
[return expression]
}
其中的functionName可以省略,成为匿名函数。一般定义匿名函数为如下:
var max = function(a, b){
if(a>b) return a;
return b;
}
因为没有函数名称要使用它得直接定义一个变量传入结果。
但dojo定义的格式如下:
(function(){
var mp = dojo.config["modulePaths"];
if(mp){
for(var param in mp){
dojo.registerModulePath(param, mp[param]);
}
}
})();
没有直接用变量调用而是通过全局变量dojo进行操作。
它外面的(function(){})();语法表示一个匿名函数的定义。
var iii = (function(a,b){return a+b;})(1,2);
alert(iii);
后面的括号(1,2)表示创建完后立即进行这个函数调用。结果是弹出3的结果。
iii是表示返回的值,而不是创建的函数,因为括号”(“比等号”=”有更高的优先级。
这是为了在很长的代码段中进行模块化设计或者想避免命名冲突,这是一个不错的解决方法。
函数定义
函数定义有好几种。一种如下:
var func2 = function(…){…};
而dojo定义isString函数定义方法如下:
dojo.isString = function(/*anything*/ it){
// summary:
// Return true if it is a String
return !!arguments.length && it != null && (typeof it == "string" || it instanceof String); // Boolean
}
理解上面的语法,对dojo的调用也就没有什么障碍了。
- Dojo语法精讲
- SQL语法精讲
- dojo: 使用declarative语法
- 【Dojo学习之四】Dojo语法
- FPGA基础及Verilog语法精讲
- dojo(六):声明式语法和dojo/parser
- 精讲MySQL 数据库的 SQL 语法参考
- 精讲MySQL数据库的SQL语法参考
- css基础语法第二讲
- 常用JavaScript语法100讲
- 第三讲:属性,点语法
- swift 2.2 语法 -第一讲
- 【Java】第2讲:语法
- 第二讲:APDL语法基础
- 第一讲, HelloWorld基础语法
- CSharp第一讲-基本语法
- scala第三讲:基本语法
- dojo
- C/C++中,GB2312转Unicode
- 50个Windows自带软件的免费替代品
- 杰卡斯葡萄酒(Jacob's Creek)
- 利用 WAS 6.1 WebService 功能部件包开发 JAX-WS 2.0 Web services
- VB 系统热键实现(模块)
- Dojo语法精讲
- ASUS P5K SE 开启 AHCI
- wsgen与wsimport命令说明
- WebClient和WebRequest获取html代码
- JavaScript函数定义语法总结
- Encoded Phone Number help
- 丰田行车电脑系统重大疑似bug
- Dojo1.3.x的Ajax示例
- JS判断 日期时间型