js中的三座大山
殘血★戰狼王
这个作者很懒,什么都没留下…
展开
-
javascript原型与原型链
javascript原型与原型链 =============================================================================== 1. prototype 每个函数都有一个prototype属性,被称为显示原型 =============================================================================== 2._ proto _ 1、每个实例对象都会有_ proto _属性,其被称原创 2020-11-26 20:41:11 · 70 阅读 · 0 评论 -
作用域和自由变量
作用域和自由变量 作用域(定义) 变量作用域:就是一个变量可以使用的范围。 作用域 (种类) 1、js中首先有一个最外层的作用域,全局作用域; 2、js中可以通过函数来创建一个独立作用域称为函数作用域,函数可以嵌套,所以作用域也可以嵌套; 3、es6中新增了块级作用域(大括号,比如:if{},for(){},while(){}…); 如下图所示: es6作用域,只适用于const,let 自由变量 自由变量的概念: 当前作用域没有定义的变量 作用域链 自由变量的向上级作用域一层一层查找,直到找到为止原创 2020-11-27 21:06:59 · 145 阅读 · 1 评论 -
es6解构赋值
es6解构赋值 定义: 解构赋值语法是一种 Javascript 表达式。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。 语法 //数组结构 var a, b, rest; [a, b] = [10, 20]; console.log(a); // 10 console.log(b); // 20 //对象解构 ({ a, b } = { a: 10, b: 20 }); console.log(a); // 10 console.log(b); // 20 // ...rest原创 2020-11-27 21:19:44 · 91 阅读 · 0 评论 -
js异步之宏任务(marcroTask)和微任务(microTask)
js异步之宏任务(marcroTask)和微任务(microTask) 先看一到面试题 写出console.log的输出顺序 console.log(100); setTimeout(()=>{ console.log(200); }) setTimeout(()=>{ console.log(201); }) Promise.resolve().then(()=>{ console.log(300); }) console.log(400); // 1原创 2020-12-01 21:22:44 · 101 阅读 · 0 评论 -
一文彻底搞懂js垃圾回收和内存泄露
一文彻底搞懂js垃圾回收和内存泄露 垃圾回收机制 浏览器的 Javascript 具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大并且GC时停止响应其他操作,所以垃圾回收器会按照固定的时间间隔周期性的执行。 只有函数内的变量才可能被回收 不再使用的变量也就是生命周期结束的变量,当然只可能是局部变量,全局变量的生命周原创 2020-11-30 21:37:40 · 155 阅读 · 0 评论 -
闭包
闭包 1. 如何产生闭包(closure) 上图代码: // 函数作为返回值 function create() { const a = 100 return function () { console.log(a) } } const fn = create() const a = 200 fn() // 100 // 函数作为参数被传递 function print(fn) { const a = 200 fn() } const a =原创 2020-11-30 21:24:35 · 356 阅读 · 0 评论