![](https://img-blog.csdnimg.cn/a70f283d38ce46f2afa4568eae70a962.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript
JavaScript
大号密码忘了
一枚非常普通的计算机2020级大学生
展开
-
JS对闭包的理解
调用上下文是调用这个本地的执行上下文,它可以是全局执行上下文,也可以是另外一个本地的执行上下文。在全局作用域时将函数声明并赋值给一个变量的时候也会产生闭包,但该闭包是在全局作用域当中产生的,所以它可以访问全局变量,所以在全局作用域中闭包的概念并不重要。当代码执行到函数时,会创建一个新的执行上下文,称之为本地上下文或函数上下文,这个本地执行上下文将有它自己的一组变量,这些变量将是这个执行上下文的本地变量。本质就是上级作用域内变量的生命周期,因为被下级作用域内引用,而没有被释放。这个本地执行上下文被销毁,...原创 2022-08-17 22:08:57 · 477 阅读 · 1 评论 -
JS闭包详解
调用fn函数的打印值为a1打印的是函数定义时所在作用域中变量a的值,即自由变量a是在函数定义的地方进行变量查找,而不是函数执行的地方查找。通过函数作为返回值的形式,在全局变量中访问到了函数内部的变量,构成了闭包。创建私有变量,只能在当前作用域访问和改变,防止外部改变该变量。闭包体现定义函数fn时,与周围环境a=2进行绑定。闭包一个函数和它的周围状态的引用捆绑在一起的组合。通过调用test函数打印结果a2;...原创 2022-07-22 17:38:28 · 133 阅读 · 0 评论 -
JS作用域和自由变量
ES6中let和const关键字所声明的变量具有块级作用域,块级作用域为一个大括号所包裹的区域,在该大括号中声明的变量只能在该大括号(块级作用域)中访问。由多级作用域连续引用形成的链式结果,当访问某一个变量时,会在当前作用域中查找该变量,如果没有找到就向该变量的父级(上一层)作用域去寻找,以此形成了查找作用域链。总结子作用域可以访问父作用域中声明的变量,但是父作用域不能访问子作用域中声明的变量。变量在函数内声明,变量为局部变量,具有局部作用域。凡是跨了自己的作用域的变量都叫自由变量。...原创 2022-07-22 17:17:32 · 195 阅读 · 0 评论 -
JS中break、continue、return跳出循环的用法和区别
作用: 立刻退出包含在最内层的循环或者退出一个 语句。使用特点:例:二、continue作用: 语句和 语句相似,不同的是, 不退出循环,只跳过当前循环。使用特点:例: 以下循环只跳过了 时的这一次迭代。三、return作用: 用于返回函数的返回值,因此 语句只能出现在函数体内,否则会报错: 。使用特点:例1: 在 中当执行到 ,会退出循环。例2: 在 循环中只跳过了 时的这一次迭代转载:JS中break、continue、return跳出循环的用法和区别原创 2022-07-12 11:21:34 · 501 阅读 · 0 评论 -
JS 创建并初始化数组的各种方法与坑
刷力扣买卖股票系列问题时在创建与初始化数组上遇到了很多自己不知道的知识点,写篇博客记录一下。// 含义:创建一个三个坑位的数组,每个坑位又初始化为一个二维数组// 注意:fill方法如果填充的是复杂数据类型的数据(对象和数组)那么所有被填充项引用的都是同一个对象而不是对象的拷贝,也就是说改变一个另外的都会跟着变// 解决方法:// 想要修改数组的时候要单独的替换整个数组需要用双重 for 循环进行初始化4.利用数组的map方法快速生成二维数组。注意:在这个方法中,不能将删除,因为原创 2022-06-19 22:06:48 · 5105 阅读 · 0 评论 -
JS 防抖与节流
防抖:概念:用户连续点击,前面的触发都被取消,只有最后一次触发的回调在规定时间后才会触发。即:如果连续触发 只会执行最后一次触发的回调。使用场景:百度搜索框中输入对应内容下方会有相关内容的提示,如果每输入一个文字都发送一次请求是非常浪费性能的,所以使用节流设置一个时间,只有当用户输入完内容之后不在输入,经过了预先设置好的时间才会发起请求。// 防抖 // 概念:用户连续点击,前面的触发都被取消,只有最后一次触发的回调在规定时间后才会触发。 // 即 .原创 2022-05-20 21:26:58 · 117 阅读 · 0 评论 -
ES6 Set集合介绍与常见用法
// 用 new 创建一个 set 数据结构 const s1 = new Set(); // size set数据结构中有多少个数据 console.log(s1.size) const s2 = new Set(["a", "b"]); console.log(s2.size) // 利用 Set 进行数组去重 // Set 构造函数可以接收一个数组 const s3 = new Set(["a", "a", "b", "b"]); console.log(s3.原创 2022-05-17 10:50:20 · 142 阅读 · 0 评论 -
ES6 Promise详解
一;Promise基本概念1.Promise 是一个实例化对象,想要使用Promise需要先 new 进行实例化2.Promise 接收一个回调函数,回调函数中接收俩个参数,一个是 resolve,表示处理成功的结果,另一个是reject,表示失败的结果,其成功或者失败的值会被实例化对象 .then 方法处理,失败的方法也可单独被 catch()处理二;实例化 Promise(1).then方法可以只写第一个成功的回调,接收成功的返回结果(2)promise 的 resolve 和 re原创 2022-05-16 20:46:51 · 394 阅读 · 0 评论 -
ES6 Symbol 详解
一;概念ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。二;基本用法 创建 Symbol let s = Symbol(); console.log(s, typeof s); 使用Symbol函数创建 Symbol变量 let s2 = Symbol('尚硅谷') let s3 = Symbol('尚硅谷') cons原创 2022-05-15 17:40:19 · 207 阅读 · 0 评论 -
ES6 迭代器
一;概念1.迭代器是帮助我们对某个数据结构进行遍历的对象, 它有一个 next 方法, next 方法返回一个对象。2.如果该数据类型上有 symbol.interator 方法 则该数据类型可以被遍历3.给对象添加 symbol.interator 方法可以指定该对象的遍历规则二;Symbol.iterator 方法介绍// 迭代器工作原理 // 1.创建一个指针对象,指向当前数据结构的起始位置 // 2.第一次调用对象的 next 方法,指针自动指...原创 2022-05-15 17:30:50 · 357 阅读 · 0 评论