1.关于对象的简洁写法。如果你想创建一个对象时,你需要这样写:
var car = new Object();
car.colour = 'red';
car.wheels = 4;
car.hubcaps = 'spinning';
car.age = 4;
下面的写法同样可以达到效果:
var car = {
colour:'red',
wheels:4,
hubcaps:'spinning',
age:4
}
这样的写法简洁多了,也许可能会遇到InvalidUserInSession的问题,这个问题只有在使用IE浏览器的情况下遇到,只要记住在大括号的右侧前面不加,就不会有麻烦。
2.关于数组的简洁写法:
传统的数组定义方法是这样的:
var moviesThatNeedBetterWriters = new Array( 'Transformers','Transformers2','Avatar','IndianaJones 4' );
简洁的写法是这样的:
var moviesThatNeedBetterWriters = [ 'Transformers','Transformers2','Avatar','IndianaJones 4'];
3.关于javascript中的内置函数Math.max()
Math.max(12,123,3,2,433,4); // returns 433
这个函数能够校验数字,并且能够返回最大的数字。
4.匿名函数模块化。
在javascript中最令人懊恼的是变量没有作用范围,任何变量、函数、数组、对象只要不是在函数内部,都被认为是全局的。也就是说这个页面上其他的脚本可以访问它,修改或覆盖它。
例如:
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
定义了三个全局变量和两个全局函数。一旦在这个页面上,如果有其他变量名定义为name或age、status,这样会造成变量引用混乱。
如果这样做,就可以避免了一些问题:将函数和变量都封装在另一个函数里面了
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
}();
这样一来外面的函数就访问不到了上面内部的函数。如果可以让外部函数访问内部函数,可以这样:
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
return{
createMember:function(){
// [...]
},
getMemberDetails:function(){
// [...]
}
}
}();
//myApplication.createMember() 和
//myApplication.getMemberDetails() 就可以使用了。
这种被称作module或singlet模式。
还可以这样做:重新定义被外界访问元素的指针
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
return{
create:createMember,
get:getMemberDetails
}
}();
//现在写成 myApplication.get()和 myApplication.create() 就行了。
var car = new Object();
car.colour = 'red';
car.wheels = 4;
car.hubcaps = 'spinning';
car.age = 4;
下面的写法同样可以达到效果:
var car = {
colour:'red',
wheels:4,
hubcaps:'spinning',
age:4
}
这样的写法简洁多了,也许可能会遇到InvalidUserInSession的问题,这个问题只有在使用IE浏览器的情况下遇到,只要记住在大括号的右侧前面不加,就不会有麻烦。
2.关于数组的简洁写法:
传统的数组定义方法是这样的:
var moviesThatNeedBetterWriters = new Array( 'Transformers','Transformers2','Avatar','IndianaJones 4' );
简洁的写法是这样的:
var moviesThatNeedBetterWriters = [ 'Transformers','Transformers2','Avatar','IndianaJones 4'];
3.关于javascript中的内置函数Math.max()
Math.max(12,123,3,2,433,4); // returns 433
这个函数能够校验数字,并且能够返回最大的数字。
4.匿名函数模块化。
在javascript中最令人懊恼的是变量没有作用范围,任何变量、函数、数组、对象只要不是在函数内部,都被认为是全局的。也就是说这个页面上其他的脚本可以访问它,修改或覆盖它。
例如:
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
定义了三个全局变量和两个全局函数。一旦在这个页面上,如果有其他变量名定义为name或age、status,这样会造成变量引用混乱。
如果这样做,就可以避免了一些问题:将函数和变量都封装在另一个函数里面了
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
}();
这样一来外面的函数就访问不到了上面内部的函数。如果可以让外部函数访问内部函数,可以这样:
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
return{
createMember:function(){
// [...]
},
getMemberDetails:function(){
// [...]
}
}
}();
//myApplication.createMember() 和
//myApplication.getMemberDetails() 就可以使用了。
这种被称作module或singlet模式。
还可以这样做:重新定义被外界访问元素的指针
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
return{
create:createMember,
get:getMemberDetails
}
}();
//现在写成 myApplication.get()和 myApplication.create() 就行了。