function add(number) {
alert(number);
alert(number + 10);
}
add();
// 先是弹出undefined,它是js的5种原始值之一,
//然后弹出NaN, not a number.
add(10,30);
//先弹出10,然后弹出20.参数中的30由于没有和它匹配的,所以就自动丢失
在java中,方法的重载的要求是:方法签名一致,参数的类型或者是个数不同,那么在js中对于参数的类型是控制不了的,所以要模拟实现方法的重载只能从个数着手了。在js中给我们内置了一个arguments 参数,我们可以通过它来实现重载的功效。
function add() {
if(1 == arguments.length) {
alert(arguments[0] + 10);
}
else if(2 == arguments.length) {
alert(arguments[0] + arguments[1] + 10);
}
}
add(10);
add(4,6);
js中的对象中还有一个内置参数length,
alert(add.length);返回的是add方法所接收参数的个数。
JavaScript中有五种原始值:Undefined,Null,Boolean,Number,String
Undefined数据类型的值只有一个:undefined
Null数据类型的值只有一个:null
Boolean数据类型的值只有两个:true,false
var s ; alert(s); //undefined 只声明未赋值的时候是undefined
typeof的返回值有五个:undefined,boolean,number,string,object
var s = "ddd";
alert(typeof s); //string
var s = new String("dd");
alert(typeof s); //object
对于函数来说,如果其不返回值,那么其返回值就为undefined
function test(){
}
alert(test()); //undefined. 当函数没有返回值或者是return;的时候,返回的都是undefined
function test(){
return true;
}
alert(test()); //true
function test(){
return true;
}
alert(test); //打印出方法的所有代码
null与undefined的关系:undefined实际上从null派生而来
alert(undefined == null); //true
对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量
function test() {
var s = "sss";
}
test();
alert(s); //报s未定义错误
function test() {
s = "sss";
}
test();
alert(s); // sss
强烈建议在声明变量的时候要加var,否则可能会造成内存泄露
本文深入探讨了JavaScript中的函数定义、参数处理、方法重载模拟、内置参数使用及变量声明方式等内容,并解析了undefined与null的关系及如何避免内存泄露。
997

被折叠的 条评论
为什么被折叠?



