JavaScript学习笔记|数据类型——函数类型(基础)

27 篇文章 0 订阅
24 篇文章 0 订阅

Function类型

函数实际上是对象,每个函数都是Funcetion类型的实例,函数名实际上是一个指向函数对象的指针。

函数定义的三种方式
  1. 函数声明法
function sum(num1, num2){
	return num1 + num2;
}
  1. 函数表达式
var sum = function(num1, num2){
	return num1 + num2
};

注意使用此法,sum为变量名,且function后未跟函数名(不需要函数名,因为可通过变量名调用该函数)。此外,函数末尾有分号,就像声明其他变量时一样
3. 使用Function构造函数(不推荐)
Function构造函数可以接收任意数量的参数,但最后一个参数始终都被看成是函数体,而前面的参数则枚举出了新函数的参数

var sum = new Function('num1', 'num2', 'return num1 + num2');

函数名是指针

var sum = function(num1, num2){
	return num1 + num2
};
			
var anotherSum = sum;
console.log(anotherSum(1, 2));//3
			
sum = null;
console.log(anotherSum(1, 2));//3

上述代码,先定义了一个sum( )函数用于求两个数的和,接着有定义一个函数anotherSum( )并赋予它sum( )函数相同的值,此时sum和anotherSum指向同一个函数,都能被调用并返回结果,并且切断sum对函数的指向将sum设置为null后,anotherSum ( )依旧正常调用。

注意:使用不带圆括号的函数名是访问函数指针,并不是调用函数

没有重载

将函数名看作指针,则能更好理解为何没有重载。后面的函数会覆盖前面的函数

function addSomeNumber(num){
	return num + 100;
}
			
function addSomeNumber(num){
	return num + 200;
}
			
console.log(addSomeNumber(100));//300

arguments

arguments是一个类数组对象(并不是真正意义上的数组:1.具有length属性;2.按索引方式存储数据;3.不具有数组的push,pop方法),存储着传入函数中的所有参数(实参),当我们不确定有多少个参数传递的时候,可以用arguments来获取

function fn(){
	console.log(arguments);//[1, 2, 3]
	console.log(arguments.length);//3
	console.log(arguments[1]);//2
}
			
fn(1, 2, 3);

利用函数求任意个数数字的最大值

function getMax(){
	var max = arguments[0];
	for(var i=1; i<arguments.length; i++){
		if (arguments[i] > max){
			max = arguments[i];
		}
	}
	return max;
}
			
console.log(getMax(1 ,2 ,4, 7));//7
console.log(getMax(123 ,254 ,41, 73, 54, 412, 102));//412
参考资料
  1. 《JavaScript高级程序设计》
  2. 阮一峰JavaScript标准参考教程(alpha)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值