JS系列第三弹:JS基础之函数

一、函数

1- 函数分类
1- 函数是在其中有一组代码逻辑构建, 用来执行特定任务。实际上为了易于调试和维护,函数允许以更有组织的方式编写代码。函数还允许代码重用。
2- 在JS中, 函数氛围全局函数/系统函数 与 自定义函数
3- 系统函数也称为内置函数和built-in函数。
4- 现象就是在控制台中无法显示函数的源码, 底层由c编写。只显示
	f****(){[native code]}
2- 自定义函数的创建
1- 函数声明式:
	function 函数名(){函数体}
2- 函数表达式:
	var 函数名(){函数体}
3- 利用系统函数构造
	var 函数名 = Function(*参数,函数体字符串)
	var 函数名 = new Function(*参数,函数体字符串)
4- 利用ES6 箭头函数
	var 函数名 = (*参数) => {函数体}

如图
在这里插入图片描述

3- 形参与实参
形参:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名;
实参:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值;
4- 函数的调用
1- 函数名()
2- 函数名. call(thisArg, param1, param2, ...)
3- 函数名.apply(thisArg, [param1,param2,...])
4- 匿名自执行

如图
在这里插入图片描述

5- 匿名函数
匿名函数,就是没有名的函数,一般出现就直接调用。
1. (function(o) {console.log(o);})('hello world');
2. ~(function(o) {console.log(o);return 10})('hello world');
3. +function(o) {console.log(o);}('hello world');
4. -function(o) {console.log(o);}('hello world');
5. !function(o) {console.log(o);}('hello world');
6. void function(o) {console.log(o);}('hello world');
7. (0, function(o) {console.log(o);})('hello world')
8. ((a,b)=>{return a+b})(1, 2)
6- argument对象
1. 在函数调用的时候,浏览器每次都会传递进两个隐式参数:一个是函数的上下文对象this,另一个则是封装实参的类数组对象arguments
2. arguments的定义是对象,但是因为对象的属性是无序的,而arguments是用来存储实参的,是有顺序的,它具备和数组相同的访问性质及方式,并拥有数组长度属性length,所以arguments是特殊的对象,又叫类数组对象。
3. arguments有一个callee属性,返回正被执行的Function对象,轻易实现递归
4. 可被修改
5.  可转换为真实数组:Array.prototype.slice.call(arguments); [].slice.call(arguments); Array.from(arguments);
					 [...arguments];
7- 课外小知识

我们看一个对象是否为可迭代对象,需要查看他是否有Symbol.iterator属性

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值