代码改变世界

函数部分总结

2017-04-23 23:28  王梓弦  阅读(219)  评论(0)    收藏  举报
二.函数

//function test() {
//方法体
//}
//function是关键字,test是函数名,()内是传入函数的参数,大括号内是方法体

//var test=function(){
// 方法体
//}
//变量赋值的写法。函数名写到前面直接用全局var声明,把函数返回值赋值给test
//1.采用函数表达式声明函数时,function命令后面不带有函数名。
//2.函数的表达式需要在语句的结尾加上分号,表示语句结束。而函数的声明在结尾的大括号后面不用加分号。总的来说,
//这两种声明函数的方式,差别很细微(变量提升,js的预解析),这里可以近似认为是等价的。

//function f(){
// console.log(1);
//}
//f(); // 2
//function f(){
// console.log(2);
//}
//f(); // 2 如果多次采用function重复声明同一函数。后面覆盖前面


//function add(x,y){
// return x+y
//}
//console.log(add(1,2))//3 x,y为函数的参数(形参),1,2为函数带入的具体参数(实参)



//function add(x, y) {
// return x + y;
//}
//// 将函数赋值给一个变量
//var fn = add;
//console.log(fn(1, 2));
//// 将函数作为参数和返回值
//function operator(fn) {
// return fn;
//}
//console.log(operator(add)(1, 2));
//一等公民,可以使用其他数据类型的地方就能使用函数


//var sum = add(1, 2);
//console.log(sum);
//function add(x, y) {
// return x + y;}
//3 变量提升声明式函数提升到代码头部,其实已经定义了add()
//JavaScript引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会被提升到代码头部。
// 所以,下面的代码不会报错。



//JavaScript的函数参数传递方式是传值传递(passes by value),这意味着,在函数体内修改参数值,
// 不会影响到函数外部。
//*注意:复合型函数会影响到外部*