[size=large]JavaScript的语言特性:
1、引用
相信有学过面向对象的人来说,这不是很难理解的。
可以理解引用就是:指向实际对象地址的指针。可以有多个变量指向同一个对象,但是只要其中一个变量改变,其他的变量也相应的改变。
注意:字符串的拼接,其实是产生一个新对象,例如:var str="one String";var temp =str; str += " other String"; alert(temp != str);输出true。
2、函数的重载和类型检查
与java的重载意义一样,通过判断传入的不同数量或类型的参数发挥不同的作用。所以必须依赖两件事:判断传入参数的数量的能力和辨别传入参数类型的能力。
类型判断一般使用两种方法:1、使用typeof 例如:if(typeof num === "string") , 但是这个方法一般不能用在自定义对象,因为它返回object对象。2、使用对象都带有的constructor,这个属性引用的是原本用来构造该对象的那个函数。例如: if(num.constructor == String).他们的区别见附图1。
作用域。变量的作用域是由函数划分的,不是由块划分的。
[/size]
1、引用
相信有学过面向对象的人来说,这不是很难理解的。
可以理解引用就是:指向实际对象地址的指针。可以有多个变量指向同一个对象,但是只要其中一个变量改变,其他的变量也相应的改变。
注意:字符串的拼接,其实是产生一个新对象,例如:var str="one String";var temp =str; str += " other String"; alert(temp != str);输出true。
2、函数的重载和类型检查
与java的重载意义一样,通过判断传入的不同数量或类型的参数发挥不同的作用。所以必须依赖两件事:判断传入参数的数量的能力和辨别传入参数类型的能力。
类型判断一般使用两种方法:1、使用typeof 例如:if(typeof num === "string") , 但是这个方法一般不能用在自定义对象,因为它返回object对象。2、使用对象都带有的constructor,这个属性引用的是原本用来构造该对象的那个函数。例如: if(num.constructor == String).他们的区别见附图1。
作用域。变量的作用域是由函数划分的,不是由块划分的。
[/size]