IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Day06_JavaScript课堂笔记 -> 正文阅读

[JavaScript知识库]Day06_JavaScript课堂笔记

Day06 JavaScript 课堂笔记

1 回顾 数组

1. 数组
   值的有序集合, 由元素组成,元素有索引和值
   对象类型中的一种
2. 创建数组
   [];
   Array();
   new Array();
3. 读写数组的元素
   数组[索引]
4. 稀疏数组
5. 遍历数组
6. 数组元素的添加和删除
   添加元素: 数组[数组.length]、数组.push()、数组.unshfit()、数组.splice(位置, 0, 新元素...)
   删除元素: 数组.length -= n、属性.pop()、数组.shift()、数组.splice(位置,数量)
7. 多维数组
8. 字符串的数组特性

2 函数

2.1 函数概述

① 什么是函数

1. 函数是具有特定功能的代码块
2. 函数是JS中的一种数据类型,是对象类型中的一种, typeof 返回 function

② 函数的作用

1. 减少冗余代码,代码复用。
2. 实现代码模块化。
3. 封装性,让函数内部代码对外不可见。

③ 函数的组成

函数名: 本质上是变量名,命名规范同变量名命名规范。

函数体: 函数内的代码块。

参数: 写在小括号里,分为形参和实参。

返回值: 函数调用之后产生的计算结果。

2.2 声明函数的三种方式

① function 关键字方式

function 函数名([参数列表]) {
    函数体语句...;
}

② 表达式方式

var 函数名 = function([参数列表]) {
    函数体语句...;
}

③ Function 构造函数方式(了解)

var f01 = Function("console.log('f01 start'); console.log('f01 end');");
var f02 = Function('a', 'b', "console.log(a + '和' + b + '交朋友')");

var f03 = new Function("console.log('f01 start'); console.log('f01 end');");
var f04 = new Function('a', 'b', "console.log(a + '和' + b + '交朋友')");

2.3 函数的调用和返回值

① 函数调用

1. 函数名后面加小括号才是函数函数的调用, 函数名没有小括号就是在使用一个变量
2. 函数只有调用,函数体内的语句才会执行
3. 函数只有调用,才能得到返回值

② 返回值

1. 函数调用表达式的值就是函数的返回值
2. 如何设置函数的返回值?函数体内
   ① 使用关键 return,return 的右边写变量、直接量或者表达式作为返回值
   ② 如果 return 右边什么都没有或者return都没有,返回没有返回值; 函数调用表达式以undefined为值
3. return 可以结束函数,一旦执行到return,下面的代码就不执行了。

2.4 函数的参数

① 形参和实参

形参: 声明函数时所设置的参数,形参本质上就是个没有赋值的变量。

实参: 调用函数时所设置的参数,实参的形式可以是变量、直接量、表达式。

② 形参和实参的数量问题

1. 实参数量应与形参数量一致
2. 如果实参数量大于形参数量,多余的实参无法在函数中被使用。
3. 如果实参数量小于形参数量,后面的形参会无法被赋值,自动得到 undefined

③ 形参的默认值(可选参数)

ES5 设置形参默认值的方式:

function func(name, age) {
    if (age === undefiend) {
        age = 默认值;
    }
}

ES6 设置形参默认值的方式:

function func(name, age=默认值) {
    
}

总结:

1. 实参按照顺序给形参进行赋值。
2. 有默认值的参数一定放在后面,才有意义。
3. 把有默认值的参数称为可选参数。

④ arguments

1. 获取实参的值,除了使用形参,还可以使用 arguments, arguments 能够获取所有的实参。
2. arguments 是一个伪数组,里面的元素有所有的实参组成,通过索引获取到每个实参,具有 length 属性
3. arguments 只能在函数内使用。
4. 利用arguments,可以实现可变参数数量的函数
// 计算所有参数的和
function sum() {
    // 定义变量 记录和
    var res = 0;

    // 遍历 arguments
    for (var i = 0; i < arguments.length; i ++) {
        res += arguments[i];
    }

    // 返回结果
    return res;
}

2.5 作用域

① 变量的作用域

作用域指变量的作用范围,变量只在自己的作用范围内使用。

根据变量的作用域范围,可以把变量分为全局变量和局部变量。

1. 全局变量, 在函数外面声明的变量就是全局变量,作用域是全局的。
2. 局部变量, 在函数内声明的变量就是局部变量,作用域是所在的函数。

注意: 函数中的形参也是局部变量,作用域是所在的函数!

image-20210817084903581

② 作用域链

1. 函数体语句内还可以声明函数,函数的嵌套形成了作用域链
2. 作用域链用来描述变量的查找过程:
   ① 当使用某个变量的时候,先从本作用域中查找,本作用域有声明该变量就直接使用,如果本作用域没有,取上一级作用域中查找
   ② 上一级若找到,就使用并停止查找,否则继续向上查找,直到全局作用域,哪里找到哪里停止。
   ③ 如果全局作用域中还没有,报错 not defined
3. 从声明变量的角度:
   ① 变量可以在本作用域或下级作用域使用
   ② 变量不能在上一级作用域使用。

作用域只与声明函数的位置有关,与调用函数的位置无关!

2.6 变量提升

① 变量提升

1. 代码正式执行之前,进行预处理。 预处理的时候会查找代码中的变量声明语句(var 关键字), 提前创建好变量,但是没有赋值。
2. 代码正式执行到变量声明语句,仅仅进行赋值操作。
3. 变量提升会将变量的声明提升到所在作用域的最前面,但是只提升声明不提升值!

② 函数提升

1. function 关键字方式创建的函数,在预处理阶段,声明和值一起提升。
2. 正式执行代码的时候,执行到 function 关键字函数声明语句,直接跳过。
3. 表达式方式创建函数,提升方式与普通变量一样,只提升声明不提升值。

2.7 匿名函数

1. 匿名函数就是没有名字的函数,就是函数直接量
2. 匿名函数主要用于立即执行函数和回调函数
// 函数的直接量 匿名函数
(function() {
    console.log('啊,我是匿名函数');
});

// 表达式形式 把匿名函数(函数直接量)赋值给变量 fn
var fn = function() {

}

2.8 自调用函数 (IIFE 立即执行的函数)

1. 自调用函数也叫立即执行的函数,函数声明完立即被调用, 只被调用一次。
2. 自调用函数作用是为了形成一个作用域,避免全局变量污染。
 // 匿名 立即执行的函数,自调用函数
(function() {
    console.log('hello,匿名自调用函数!');
})();


// 有名的函数 立即执行
(function func() {
    console.log('啊,我是 func');
})();
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 08:59:40  更:2021-08-29 09:01:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:46:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码