深入JS函数

深入JS函数

一、函数声明

1、声明方式
1.1 function函数
function fn() {
	console.log("hello");
}
fn();  //hello
1.2 函数表达式
var fn = function(num){
	num = num + 1;
	return num;
};
console.log(fn(1));  //2
1.3 构造函数
var Fn = new Function("a","b","return a+b;"); 
console.log(Fn(2,3));   //5
2、重复声明

重复声明时,后面的函数会覆盖掉前面的函数。

二、第一等公民

2.1 js认为函数和其他对象地位相等,都可以作为直接值来使用。
2.2 属性

(1)length :函数声明时定义的参数的个数。
(2)protopyte :函数的原型

2.3 调用方法

命名函数 :直接调用

function fn(){
	console.log("hello"); 
}
fn();

匿名函数 :使用*函数本体()*调用

function(){
	console.log("hello"); 
}();

递归调用

function fn(num){
	if(num <= 1){return 1;}
	return num * fn(num-1);  
}

构造函数 :使用*new函数()*调用

function fn(){ }
console.log(fn());  //undefined
console.log(new fn()); // fn { }

间接调用 :使用*函数名.call()或者函数名.apply()*调用

function name(m,n){ 
	return m-n;
}
var result1 = name.call(window,4,2);
var result2 = name.apply(window,[4,2]);
console.log(result1);
console.log(result2);

三、arguments对象

(1)arguements对象参数属于类数组;
(2)arguements对象只有在函数体内部可以使用;
(3)通过arguements.length,获得函数被传入几个参数;
(4)没有传递值得命名参数将自动被赋予undefined值;
(5)callee属性,返回对应的原函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值