「这是我参与2022首次更文挑战的第32天,活动详情查看:2022首次更文挑战」
写在前头
大多数小伙伴看技术书籍都会用“啃”来描述读书的直观感受,当然我也是一个前端小白,白的透明那种,但是我在读技术书籍感觉到“啃”的时候,我希望把我啃红宝书第四版的过程的想法,总结带给大家,以供后来者能够更快上手。
注: 本文由于作者水平原因,如有错误之处,恳请大家指正,另外随着学习的深入,体会的加深,我会不断回来更新,修改这类文章。
思维导图
简述
函数这一章其实在有一定的编程基础,比如学过一点c语言就很好读下去。整体还是易读板块。
函数本质
函数本质上是对象。每个函数都是Function 类型的实例。
函数的定义
函数的定义一共有四种。
①函数声明
function fn(x) {
}
注意: 函数定义最后没有加分号。
②函数表达式
let fn = function (x) {
};
注意 函数末尾是有分号的,与任何变量初始化语句一样。
③箭头函数
let fn = (x) => {
return x;
};
箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。
任何可以使用函数表达式的地方,都可以使用箭头函数
④ Function() 构造函数
let fn = new Function('x', 'return x'); // 不推荐
不推荐理由:
上面代码会被解释两次
影响性能
① 第一次是将它当作常规ECMAScript 代码。
② 第二次是解释传给构造函数的字符串。
优点
把函数想象为对象,把函数名想象为指针是很重要的。而上面这种语法很好地诠释了这些概念。
10.1箭头函数
-
使用场景
任何可以使用函数表达式的地方,都可以使用箭头函数
书写格式
①小括号()
一个参数: 不用使用括号。
没有参数,多个参数必须需要括号。
②大括号{}
不使用大括号:箭头后面就只能有一行代码,比如一个赋值操作,或者一个表达式。
使用大括号:可以在一个函数中包含多条语句,跟常规的函数一样。
10.2函数名
- 函数名的本质
函数名就是指向函数的指针。一个函数可以有多个函数名。记住函数是一个对象!
- 函数名的使用
使用不带括号的函数名会访问函数指针,而不会执行函数。
- name属性
name属性保存的是一个函数标识符(一个字符串化的变量名)。
当函数没有名称时: name也会显示空字符串。