函数数据类型的详细解读

函数数据类型的详细解读

函数就是一个方法,可以实现某个功能

把实现某一个功能的代码进行“封装”后期再想实现这个功能,无需重新编写代码,只需要执行函数即可

执行函数=>函数(实参1,实参2,……)

实参(具体的值):就是给函数的行参变量传递的具体值

例sum(17),x=17,y=undefined,创建函数定义了行参,但是执行时候没有传递实参值 ,则默认值是undefined;

例sum(10,20,30),x=10,y=20,

例sum(),x=undefined,y=undefined,

函数的出口:返回值机制

function sum(x=0,y=0){

var total=x+y,

average=total/2;

a=average.toFixed(2);

return"@@";

}

sum : ƒ sum(x,y){} 代表的是函数本身

sum() : 函数执行 代表的是执行后返回的结果(看return)

var resule=sum(10,20)

console.log(resule)

return

不写return或者return后面啥都没有,默认返回值都是undefined

return后面是啥,返回的就是啥

return一定是一个值

函数体中只要遇到return,return下面的代码就不会再执行了!

function sum(x=0,y=0){

var total=x+y,

average=total/2;

a=average.toFixed(2);

return"ABC";

}

var aa=sum();

console.log(aa) //ABC

匿名函数(没有函数名字)

函数表达式:把创建的函数当做值,赋值给变量或者其他内容(把一个函数作为值进行操作的,都叫函数表达式)

自执行函数:创建函数和执行函数一起完成了(创建完函数,立即把函数执行)

第一个小括号中存放的是创建的函数

第二个小括号是把函数执行

例(function(x){

})(100;)

外面用小括号包起来,仅仅是为了让语法支持

除了用小括号把函数包裹起来可以解决语法错误的问题,前面加~±!也都可以让语法正确

function (x){

}(100)

正常创建:声明一个变量叫做fn,只不过存储的值是一个函数

function fn(){}

“函数表达式”创建函数:和上面方式的效果是一样的(在变量提升时,有一些区别)

var fn=function(){

里面这个也相当于函数表达式,创建一个匿名函数,把其作为值返回

return function(){}

}

var f=fn();

document.body.οnclick=function(){}

需求:执行函数的时候传递实参值,但是到底传递多少个实参"不确定",我们想接受函数传递的实参信息

设定形参变量,但是需要知道传递实参的数量和顺序

函数内置实参集合arguments:不论是否传递以及传递多少实参(也不管是否设定形参),集合中包含了所有传递进来的实参信息

不传递就是一个空集合

这个集合是一个"类数组"

ES6中的“…”剩余运算符:函数形参中的剩余运算符,可以获取到除前面设定形参变量接收到的实参信息外,剩下的实参都放到这个集合当中

如果一个形参变量都没有定义,则所有传递实参信息都存到这个集合当中

这个集合是一个“数组”集合

function fn(){

console.log(arguments);

}

fn();

fn(10);

fn(10,20);

fn(10,20,30)

params变量,存储实参集合,数组

function fn(x,…params){

console.log(params,arguments)可以和arguments同时使用

}

fn()

fn(10)

fn(10,20)

fn(10,20,30)
最常见的任意数组求和用的就是arguments的方法

猜你喜欢

转载自blog.csdn.net/hanruo7532/article/details/111774498