本文主要是介绍JavaScript 基础——3.JavaScript 函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、函数基本概念
1. 定义方式
// * 1. 函数声明
function fn(n1, n2) {
return n1 + n2;
}
// * 2. 函数表达式
const fn2 = function () {
// 函数体
};
// * 3. 函数对象
const fn4 = new Function(n1, n2, '/*函数体*/');
// * 4. 箭头函数
const fn3 = () => {
// 函数体
};
- 使用构造函数的方式定义函数,仅仅只是为了说明,函数也是一种对象
- 注意:箭头函数与普通函数完全不同,请不要将箭头函数实例与普通函数实例混为一谈
2. 函数名
- 函数名必须是一个合法的标识符
- 函数名是指向函数实例的一个引用
- 箭头函数、函数声明都可以没有函数名,这样的函数被称为匿名函数/Lambda函数
3. 函数参数
- 参数值传递:按原始值/引用值传递
- ES5 中的特性
- ES6 + 中的特性
- 函数参数也存在暂时性死区
- 可以为参数设置默认值
- 使用 … 来收集剩余参数
二、函数性质
1. 一般特性
- Function 最终继承自 Object
- Function 实例具有 Object 实例的所有特性
- 函数可以被作为参数传入另一个函数:这样的函数被称为
回调函数
- 函数可以被作为返回值来返回:这样会产生一个特殊的作用域
闭包
- 函数内部的一些特性
- arguments 类数组对象
- this 的指向
- caller (仅限于 ES5)
- new.target (可以用于检测当前函数是否被作为构造函数使用)
- 函数的属性
- length:表示命名参数的个数
- prototype:函数原型
2. 箭头函数的特殊性
- 不能使用 arguments 对象
- 不能使用 super
- 不能使用 new.target
- 不能被作为构造函数使用
- 函数内的 this 取决于函数所在的作用域的 this
3. 函数作为构造函数使用
- 可以使用 new.target 来判断当前函数是否以构造函数来调用
- 一个构造函数,其本质仍然是一个普通函数
- 如果函数没有 return 一个具体对象,则直接 return 函数内部的 this 对象
- 构造函数创建的对象,不存在私有成员一说,只能通过特殊的方式实现
- 实现方式:使用私有变量来实现私有成员的作用。构造函数返回一个特定的对象,这个对象提供构造函数内部的一些变量的访问控制
- ES6 之后的新实现方式:使用 Proxy
这篇关于JavaScript 基础——3.JavaScript 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!