JavaScript

let关键字

let是es6提出
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述

const关键字

在这里插入图片描述

数据类型

typeof

在这里插入图片描述

基本数据类型

number

string

在这里插入图片描述

boolean

在这里插入图片描述

undefined

在这里插入图片描述

null

在这里插入图片描述

类型转换

隐式转换

在这里插入图片描述

显式转换

在这里插入图片描述

引用数据类型

数组

在这里插入图片描述
在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述

作用域、变量

在这里插入图片描述

匿名函数

在这里插入图片描述

立即执行函数

在这里插入图片描述

进阶
定义

在这里插入图片描述
在这里插入图片描述

调用

在这里插入图片描述

函数内this指向

在这里插入图片描述
在这里插入图片描述

改变函数内部 this 指向
call

在这里插入图片描述

apply

在这里插入图片描述

解释
在JavaScript中,Math.max 函数用于返回一组数中的最大值。然而,Math.max 函数本身并不直接接受一个数组作为参数,而是接受任意数量的参数。为了使用数组作为参数传递给 Math.max,我们可以使用 Function.prototype.apply 方法。apply 方法允许我们调用一个函数,同时为其指定 this 值(在 Math.max 的情况下,这个值并不重要,因为 Math.max 不使用其 this 值),以及一个数组或类数组对象,该数组或对象的元素将作为单独的参数传递给函数。

  1. console.log(Math.max.apply(null, arr)) //99
    这里,apply 方法被用来调用 Math.maxthis 值被设置为 null(对于 Math.max 来说,这没关系),而 arr 是一个数组,其元素将作为参数传递给 Math.max。假设 arr 包含一些数字,比如 [1, 23, 99, 4],那么 Math.max 将返回这些数字中的最大值,即 99

  2. console.log(Math.max.apply(Math, arr)) //99
    这行代码与上一行几乎相同,唯一的区别是 this 值现在被设置为 Math 对象。然而,对于 Math.max 函数来说,this 值并不重要,因为它不会在其函数体内引用 this。因此,无论 this 被设置为 null 还是 Math,结果都是相同的。如果 arr 仍然包含 [1, 23, 99, 4],输出仍然是 99

  3. console.log(Math.max.apply(null, arr1)) //NaN
    在这行代码中,apply 方法再次被用来调用 Math.max,但这次使用的是 arr1 数组。输出结果为 NaN(Not-a-Number),这意味着 arr1 数组中的元素不能正确地被 Math.max 处理为数字。这种情况可能发生在以下几种情况之一:

    • arr1 包含非数字元素(如字符串、对象、undefinednull 等)。
    • arr1 是空的,因为 Math.max 在没有参数时返回 -Infinity,但如果参数中包含无法转换为有效数字的值,则可能返回 NaN
    • arr1 中的数字是以某种方式(如字符串格式)提供的,这些字符串无法被 Math.max 正确解析为数字。

    例如,如果 arr1['99', 'abc']Math.max 尝试将 'abc' 转换为数字时会失败,从而导致 NaN 的结果。如果 arr1 是空数组 [],则理论上应该返回 -Infinity,但如果有任何非数字元素,结果可能是 NaN

bind

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
解决方案
1.用let代替var,防止循环变量变成全局变量
在这里插入图片描述
2.绑定this
3.使用箭头函数
在这里插入图片描述

高阶函数

在这里插入图片描述

闭包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

综合

在这里插入图片描述

递归

在这里插入图片描述

浅拷贝

在这里插入图片描述

深拷贝

在这里插入图片描述

遍历数据

在这里插入图片描述

对象

在这里插入图片描述

运算符

在这里插入图片描述

比较运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

流程控制

分支语句

if

在这里插入图片描述

三元运算符

在这里插入图片描述

swich语句

在这里插入图片描述

循环结构

在这里插入图片描述

while循环

在这里插入图片描述

for循环

在这里插入图片描述

循环退出

在这里插入图片描述

嵌套使用

扩展

在这里插入图片描述

对象

在这里插入图片描述

操作对象

在这里插入图片描述
在这里插入图片描述

内置对象

Math

例如

在这里插入图片描述

Math.random()

生成0-1之间的随机数(包含0不包括1)

在这里插入图片描述

示例

  • 声明(class)、实例化(new)
  • 构造函数:默认函数
  • 继承(extend)
  • super关键字
  • 类中方法之间无逗号
    在这里插入图片描述
    在这里插入图片描述

注意点

在这里插入图片描述

构造函数

ES6以前类的定义方式——使用构造函数

在这里插入图片描述

基本使用

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

构造函数原型prototype

在这里插入图片描述

对象原型__proto__

在这里插入图片描述
在这里插入图片描述

constructor属性

在这里插入图片描述在这里插入图片描述在这里插入图片描述

原型链

在这里插入图片描述在这里插入图片描述

成员(属性、方法)查找机制

在这里插入图片描述在这里插入图片描述

原型对象this指向

在这里插入图片描述在这里插入图片描述

扩展内置对象

在这里插入图片描述

构造函数实现继承

在这里插入图片描述

拓展(fun.call函数)

在这里插入图片描述

借用构造函数继承父类型属性

在这里插入图片描述

借用原型对象继承父类型方法

在这里插入图片描述
在这里插入图片描述

ES6中类的本质

在这里插入图片描述

ES5 新增方法概述

数组方法

forEach
map
filter
some
every
在这里插入图片描述

字符串方法

trim

对象方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料

黑马程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值