`

js高级进阶

阅读更多
写道
1、js不支持函数(方法)的重载

2、js中,一个方法是一个对象

3、方法的定义内部机制是通过new Function实现的,一个方法就是Function类的一个实例对象
因此方法的定义可以有一下两种模式:
第一种:
function add(number){
alert(number);
}
第二种:
var add = new Function("number","alert(number);");

4、每个方法即对象都有内置的arguments对象和length属性
arguments对象为数组类型,由调用方法时实际传递的参数组成,可以通过arguments.length来获得实际传递的参数的个数,也可以通过arguments[0]、arguments[1]等获得实际传递的各个参数的值
length属性为方法所期望的参数的个数,即定义方法时所写的参数的个数
示例:
function add(number){
alert("实际传递的参数个数为: " + arguments.length);
}
alert("方法add期望的参数个数为: " + add.length);//运行结果:“方法add期望的参数个数为: 1”
add(1,2,3);//运行结果:“实际传递的参数个数为:3”

5、js有5种数据类型(原数据):Undefined、Null、Boolean、Number、String
Undefined数据类型的值只有1个:undefined
Null数据类型的值只有1个:null
Boolean数据类型的值只有2个:true、false
Number的数据类型的值:所有的浮点数和整数
String的数据类型的值:所有的字符串
undefined是由null派生而来的

6、应用typeof运算符的结果值有5种:undefined、boolean、number、string、object,前面4个是原始类型的值,最后1个是对象

7、对于函数来说,如果其不返回值,那么其返回值就为undefined

8、对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量

9、强制类型转换有3种:Boolean(value),Number(value),String(value),返回值类型(即用typeof运算符)都是原始类型的值
Boolean(value):只有value的值为null或0或""时,才为false,否则为true
Number(value);value为非数字时,结果为NaN(意思为not a number)

10、Boolean、Number、String也可以作为一个类,然后通过new的方式来进行实例化成对象,当然应用typeof后返回值是object
new Boolean(value)
new Number(value)
new String(value)

11、Object类是js中所有类(包括自定义类和内部类)都是继承自它
假如obj是一个实例对象,那么,一般可以通过如下方式获得该对象所拥有的所有属性,而有些则不能
for(var temp in obj){
alert(temp);
}

不可以使用的情况有:obj为new Object()
可以使用的内置对象比如:window
for(var temp in window){
alert(temp);
}
一般多数是用在自定义类中

另外任何类通过obj.propertyIsEnumerable("prototype")可以判断实例对象是否有属性(obj是类的实例对象)

12、js不同于java的另一种特点是:js在实例化对象后,可以对这个对象增加属性和属性值,并且还可以通过delete一元操作符来删除对象的属性。
var o = new Object();
o.name = "langsin";
alert(o.name);
delete o.name;
alert(o.name);
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics