- 博客(6)
- 收藏
- 关注
原创 面试题
1.闭包 闭包: 定义 当一个函数的返回值是另外一个函数,而返回的函数如果调用了父函数的内部变量,且返回的那个函数在外部被执行,就产生了闭包. 闭包的三个特性 1:函数套函数 2:内部函数可以直接访问外部函数的内部变量或参数 3:变量或参数不会被垃圾回收机制回收 闭包的优点: 1:变量长期驻扎在内存中 2:避免全局变量的污染 3:私有成员的存在 闭包的缺点 常驻内存 增大内存的使用量 使用不当会造成内存的泄露. 调用方式: //1:直接调用 a()()//内部函数的执行 //2:通过赋值在调用var f =
2020-12-15 17:07:44
309
原创 js 闭包
闭包 作用域应用的特殊情况,有两种表现: 函数作为参数被传递 函数作为返回值被返回 所有的自由变量的查找,是在函数定义的地方,向上级作用域查找,不是在执行的地方 什么是闭包 要理解闭包首先理解javascript特殊的变量作用域,变量的作用于无非就是两种:全局变量,局部变量 javascript语言的特殊处就是函数内部可以读取外部作用域的变量 我们有时候需要得到函数内的局部变量,但是在正常情况下,这是不能读取到的,这时候就需要用到闭包。在javascript语言中,只有函数内部的子函数才能读取局部
2020-12-01 10:55:43
87
原创 Promise
什么是Promise? Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。 从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。 Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。 Promise名词约定 promise(首字母小写)对象指的是“Promise实例对象” Promise首字母大写且单数形式,表示“Promise
2020-11-25 19:09:54
179
原创 es6结构赋值
概述 解构赋值是对赋值运算符的扩展。 他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。 在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。 解构模型 在解构中,有下面两部分参与: 解构的源,解构赋值表达式的右边部分。 解构的目标,解构赋值表达式的左边部分。 数组模型的解构(Array) 基本 let [a, b, c] = [1, 2, 3]; // a = 1 // b = 2 // c = 3 可嵌套 let [a, [[b], c]] = [1, [[
2020-11-23 18:56:20
245
原创 JavaScript中let、const、var 的区别
JavaScript中let、const、var 的区别 目录: 1.是否存在变量提升? 2.是否存在暂时性死区? 3.是否允许重复声明变量? 4.是否存在块级作用域? 是否能修改声明的变量? 在ES5中,声明变量只有var和function两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量,下面有介绍),ES6提出了使用let和const声明变量,弥补了ES5中var的缺点。 1.是否存在变量提升? var声明的变量存在变量提升(将变
2020-11-23 18:43:31
152
原创 Git的使用
1. Git的常用指令 git init 初始化git仓库 git status 查看文件状态 git add 文件列表 追踪文件 git commit -m 提交信息 向仓库中提交代码 git log 查看提交记录 git checkout 文件名 用暂存区中的文件覆盖工作目录中的文件 git rm --cached 文件名 将文件从暂存区中删除 git reset --hard commitID 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录 git branch
2020-11-20 21:54:34
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人