javascript函数

 函数(方法): 可复用的代码区域(代码块)。

 一、函数的创建:

  1. function 命令声明一个函数,function 后面一般给函数名,函数名后面是一对圆括号。
  2. 变量赋值的写法,把一个(匿名)函数赋值给一个变量。
  3. 构造函数 Function(js 内置的一个创建函数的函数)

函数声明以后不会运行,必须要调用函数,调用函数就是用函数名加圆括号。

function test(){ 

    document.write('111');

}

test(); 

var test2 = new Function(document.write(333)) // 等价于var test2=function(){  document.write(333) }   
test2()

 

 

  二、函数的参数,在函数名后圆括号里面的变量,就叫参数(形参);在函数内部就可以使用参数。

function print(x,y=10){ //  参数可以设置默认值

    console.log(x+y);

}

print(10); // 函数的参数是在调用的时候赋值(实参)。

 

 

  三、arguments 对象,该对象包含了函数的所有参数。一般需要转成真实数组


 

function print1(){

    console.log(arguments[0]+arguments[1]);

}

print1(1,2,3);

 

 四、变量提升。

js有预编译,把所有var 声明的变量提到顶部。

console.log(x);

var x=10;  

/**

 * 变量提升会把文件编译为  var x;console.log(x);x=10;

 */

函数名提升:

js预编译会把所有function 声明的函数名提升到代码顶部;

如果函数名和变量名重名,函数覆盖变量。

function move(){

    document.write("move");

}

var move="aa";

五、全局变量: 在函数外部的变量,都是全局变量。全局变量是任意位置都可以调用。

var name="global name"; // var 声明的全局变量是放在window对象的属性上面。

//console.log(window); // window对象是整个浏览器窗口对象,js的的所有内置属性都是属于window对象。

  局部变量: 在函数内部创建的变量,就是局部变量。

function print2(){

    console.log(p1);

    var p1 = "hello"; // 局部变量

    // 局部变量也有提升,把变量提升在函数的顶部。var p1;console.log(p1);p1="hello";

}

// console.log(p1);

print2();

六、return 返回值(函数内部使用),返回函数内部的值到函数外部。

function print3(){

    var p2 = "i am p2";

    return p2; // 返回p2的值到函数外部,return能终止后面代码的运行。

    var x = 10;

    console.log(x);

}



let getP2 = print3(); // 调用函数就能拿到return 返回的结果。

console.log(getP2);

console.log(typeof(print3)); // 函数的数据类型返回的是function

七、函数的属性(函数是一种特殊的对象类型)

  • 1. name 返回函数的名称
  • 2. length 返回函数参数的个数
var print4 = function print2(x,y){}

console.log(print4.name);

console.log(print4.length);

 

 八、递归函数: 函数内部调用自身函数。使用递归函数必须要有结束条件,不然就是无限调用,应用就会崩溃。

  应用: 阶乘,5的阶乘 1*2*3*4*5;

function count(num){

    if(num === 1){

        return num

    }

    return count(num-1)*num

}

console.log(count(5));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值