![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript
文章平均质量分 88
以提升为目的,以练习为基准,以深化为基石,夯实基础,克服难点,质的飞越
Alisone_li
学习目标:HTML,CSS,JS,JQ,NodeIs,VueJs,ReactJs,Java,Spring+,MySQL,Redis,Linux
学习宣言:持之以恒的坚持,刻苦学习的决心,立志成为一名全栈开发工程师。
展开
-
【成长之路】JavaScript中,模拟 call 的底层实现
JavaScript中,模拟 call 的底层实现面试题function fn1 () { console.log(1)}function fn2 () { console.log(2)}// call 的作用// 调用 call fn1函数,并改变fn1内部的this,将 this 指向 fn2fn1.call(fn2) // 1fn1.call.call(fn2) // 2模拟 call 的实现没有传参// 让所有的函数对象,都具有 mycall 方法原创 2020-12-25 18:20:46 · 2062 阅读 · 3 评论 -
JavaScript -- arguments、apply 、call、bind
前言笔记来源:JavaScript 高级程序设计笔记内容:apply 、call、bind 相同点与不同点运行环境:浏览器环境argumentsECMAScript 中的参数在内部是用一个数组来表示的。在函数体内是通过 arguments 对象来访问这个参数数组的。即,通过访问 arguments 对象,可以获取传递给函数的每一个参数。基本用法arguments 与 数组 类似,它属于类数组,因此它可以使用 方括号 访问它的每一个元素,以及使用 length 属性来确定传递进来多少个参数。原创 2020-11-28 14:12:00 · 355 阅读 · 0 评论 -
JavaScript -- this 总结
前言笔记来源:拉勾教育 大前端高薪训练营笔记内容:关于 this 指向,可能出现的情况运行环境:主要介绍 浏览器运行环境this 总结一,沿着作用域向上找最近的一个 function(不是箭头函数),看这个 function 最终是怎样执行的;二,this 的指向取决于所属 function 的调用方式,而不是定义;三,function 调用一般分为以下几种情况:1,作为函数调用,即:foo()代码示例如下: // 没有调用时,this 指向谁都有可能 function f原创 2020-11-28 15:41:00 · 193 阅读 · 0 评论 -
JavaScript异步编程【下】 -- Generator、Async/await
文章内容输出来源:拉勾教育 大前端高薪训练营前言原创 2020-11-25 10:10:17 · 277 阅读 · 2 评论 -
JavaScript性能优化【下】--性能优化的具体方式
代码优化如何精准测试 JavaScript 性能本质上就是采集大量的执行样本进行数学统计和分析。使用基于 Benchmark.js 的 jsben.ch、jsbench.me、measurethat.net、jsperf.com(四者选其一即可)完成。代码优化的方式慎用全局变量为什么慎用全局变量1)全局变量定义在全局执行上下文,是所有作用域链的顶端;2)全局执行上下文一直存在于上下文执行栈,直到程序退出;3)如果某个局部作用域出现了同名变量则会遮蔽或污染全局。下面,我们使用 js原创 2020-11-13 14:24:56 · 238 阅读 · 0 评论 -
JavaScript性能优化【中】-- Performance 工具
Performance 工具为什么使用 Performance1)GC 的目的是为了实现内存空间的良性循环;2)良性循环的基石是合理使用;3)时刻关注才能确定是否合理;4)Performance 提供多种监控方式,可以时刻监控内存。使用步骤1)打开浏览器输入目标地址 – Chrome为例;2)进入开发人员工具面板,选择性能;3)开启录制功能,访问具体界面;4)执行用户行为,一段时间后停止录制;5)分析界面中记录的内存信息内存问题的体现1)当网络正常时,页面出现延原创 2020-11-13 09:44:10 · 745 阅读 · 0 评论 -
JavaScript性能优化【上】-- 内存管理、垃圾回收
JavaScript性能优化JavaScript 内存管理垃圾回收与常见 GC 算法垃圾回收GC 算法GC 算法概述常见 GC 算法引用计数算法标记清除算法标记整理算法V8 引擎的垃圾回收JavaScript 内存管理内存为什么需要管理 function fn () { arrList = [] arrList[100000] = 'lg is a coder' } fn() // 内存泄露内存管理介绍内存:由可读写单元组成,表示一片可操作空间。原创 2020-11-13 09:42:48 · 148 阅读 · 0 评论 -
浅谈 TypeScript【下】-- TypeScript 语言规范与基本应用
文章内容输出来源:拉勾教育 大前端高薪训练营前言在 【浅谈 TypeScript【上】】中,简单讲述了关于JavaScript静态类型检查工具Flow的用法等。可以看到,我们接下来讲述的TypeScript与它其实有很多相似之处。TypeScript 概述首先,我们先来看一下 TypeScript的范围图:TypeScript 是由微软开发的一种开源、跨平台的编程语言,是JavaScript 的超集,主要提供了类型系统和对 ES6 的支持,最终会被编译为JavaScript代码。可以说,Ty.原创 2020-11-10 23:01:55 · 594 阅读 · 0 评论 -
浅谈 TypeScript【上】-- Flow 静态类型检查工具
前言解决 JavaScript 类型系统的问题,大大提高代码的可靠程度JavaScript 自有类型系统的问题强类型 与 弱类型(类型安全)强类型:语言层面限制函数的实参类型 必须与形参类型相同 不允许任意的隐式数据类型转换弱类型:语言层面不会限制实参的类型 允许任意的隐式数据类型转换强类型有更强的类型约束,而弱类型中几乎没有什么约束静态类型 与 动态类型(类型检查)静态类型:一个变量声明时,它的类型就是明确的原创 2020-11-10 13:05:47 · 396 阅读 · 1 评论 -
数组(Array)的常用方法
数组的常用方法迭代方法map对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。代码如下(示例):const map = (array, fn) => { let results = [] for (const value of array) { results.push(fn(value)) } return results}let numbers = [1, 2, 3, 4];let mapResult = map(numbers, (v) =&g原创 2020-10-24 15:51:28 · 294 阅读 · 0 评论 -
JavaScript异步编程【上】 -- 同步和异步、事件循环(EventLoop)、微任务和宏任务、回调函数
前言在我们学习JavaScript中,我们知道,JavaScript的执行环境是单线程的。所谓单线程是指一次只能完成一个任务,如果有多个任务,就必须排队,只有当前面一个任务完成时,才能执行后面一个任务,以此类推。这种模式虽然实现起来比较简单,执行环境相对单纯;但是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。 比如下面这段代码示例:let i = 0;while (i < 100000) { console.log(i) i++}console.log('原创 2020-10-29 16:36:42 · 742 阅读 · 1 评论 -
JavaScript异步编程【中】 -- Promise 详细解析
前言在ES6中,新增加了一种异步编程的解决方案Promise,它是一种规范,是一套处理JavaScript异步的机制。Promise的含义简单来说,它是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,通过它可以获取异步操作的消息。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。Promise 对象有两个特点:1、对象的状态不受外界影响。只有异步操作原创 2020-10-29 16:33:39 · 609 阅读 · 1 评论