JS高级程序设计2nd部分知识要点4
ECMAScript中所有函数的参数都是按值传递的。
5种基本数据类型: Undfined,Null,Boolean,Number,String.
ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数。
函数声明会优先于函数表达式被解析器解析,函数表达式则必须笔等到解析器执行到它所在的代码行,才会真正被解释执行。
例子:
alert(sum(10,10));
function sum(num1,num2){
return num1+num2;
}
-------------------------------
alert(sum(10,10));//会出错
var sum=function(num1,num2){
return num1+num2;
}
函数的名字仅仅是一个包含指针的变量而已。
每个函数都包含两个非继承而来的方法: apply()和call();
apply()方法接受两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中,第二个参数可以是Array的实例,也可以是arguments对象.
call()方法与apply()方法的作用相同,区别仅在于接收参数的方式不同,对于call()方法而言,传递给函数的参数必须逐个列举出来
例子:
function callSum1(num1,num2){
//return sum.apply(this,arguments);//传入arguments对象
return sum.call(this,num1,num2);
}
上述方法真下强大的地方是能够扩充函数赖以运行的作用域。
布尔表达式中的所有对象都会被转换为true;
只有不断努力,才有机会成功。