JavaScript
文章平均质量分 66
JIZQAQ
现PM/BA,不断学习的路上。
前全栈工程师web(vue、react),app(flutter、h5),微信小程序。Java和Python后端也有过实际项目经验。
展开
-
JavaScript性能优化10——字面量与构造式
这里来讨论一下不同数据声明方式和性能之间的关系。构造shilet test = () => { let obj = new Object() obj.name = 'zce' obj.age = 38 obj.slogan = 'SLOGAN!' return obj}console.log(test())原创 2021-06-07 00:16:54 · 178 阅读 · 1 评论 -
JavaScript性能优化9——减少判断层级、减少循环体活动
减少判断层级对我们的代码的性能影响,主要在当我们编写代码的时候有可能会出现判断条件嵌套的场景,往往出现多层if…else…嵌套的时候,我们都能通过提前return原创 2021-06-06 23:42:50 · 569 阅读 · 2 评论 -
JavaScript性能优化8——防抖与节流
一、概念我们现在JS主要是在浏览器下运行,涉及到很多人机交互的操作。假设一个场景,我们打开的网页有一个轮播图,我们对左右切换的按钮duan'shi'jian'nei原创 2021-06-06 21:05:47 · 304 阅读 · 2 评论 -
JavaScript性能优化7——缓存数据、减少访问层级
用一个例子来了解一下,如何通过处理缓存数据来提高JavaScript的执行速度。用缓存数据提高JS执行速度,主要说的就是对于需要多次使用的数据进行提前保存,后续进行使用。原创 2021-06-06 17:09:46 · 296 阅读 · 2 评论 -
JavaScript性能优化6——变量局部化
一、什么是变量局部化我们的变量分为全局变量和局部的变量,这里的变量局部化是指,我们在写代码的过程中,涉及到变量定义的时候,能够把变量放在局部就把变量放在局部的作用域当中。这样可以ti'gao...原创 2021-06-06 03:53:31 · 238 阅读 · 0 评论 -
JavaScript性能优化5——JSBench工具的使用
一、JSBench是什么根据官方的Jsbench.me 是 JavaScript 的性能基准测试平台,深受 jsperf.com 和 jsfiddle.net 的启发和影响。 它使用 Benchmarkjs.com 来执行测试套件。执行并比较不同 JavaScript 代码片段的执行速度。 通过简单而简短的 URL 与他人在线共享和协作。...原创 2021-06-06 03:27:29 · 974 阅读 · 0 评论 -
JavaScript性能优化4——循环添加事件实现
一、需求现在我们的页面上有3个按钮,我们需要用循环来给按钮添加事件,实现按按钮1的时候打印出当前索引值为0,按按钮2的时候打印出当前索引值为1,按按钮3的时候打印出当前索引值为2.二、实现方式1.闭包和自定义属性方式代码看下面代码,最开始的时候写了个普通的循环,但是发现并不能满足我们的需求。于是后面我们倚靠闭包的机制写了另外3段代码和自定义属性写了1段代码,执行过后发现都能够完成我们需要的功能。<!DOCTYPE html><html> &..原创 2021-06-06 02:56:47 · 246 阅读 · 1 评论 -
JavaScript性能优化3——浏览器执行JavaScript时底层的堆栈操作
一、堆栈准备JS执行环境(比如现在常见的就是V8):代码最终是会被转为能够运行的机器码 执行环境栈(ECStack,execution context stack):在这里执行机器码。浏览器在渲染过程中,会在我们的内存当中去开辟一片内存空间,专门用来执行代码,这个栈内存说的就是执行环境栈。 执行上下文:管理代码执行,让不同代码之间保持独立,不能相互影响。 VO(G),全局变量对象:所有变量声明都是存放在这个对象占据的空间当中。最初的时候,浏览器从我们计算机的内存当中申请或者开辟一个空间,我们把这原创 2021-06-05 16:53:24 · 295 阅读 · 0 评论 -
JavaScript性能优化2——浅谈JavaScriptV8引擎工作流程
一、过程V8引擎本身也是一个应用程序,就是JS的执行环境,我们这边只考虑浏览器平台的。Node.js用的也是V8,但是这里就不做研究。V8是浏览器的一个组成部分,用来解析和编译JS代码,内部存在很多子模块,可以看下面的图片了解。V8引擎其实只是浏览器渲染引擎里面JS执行代码的组成部分。我们直接从Scanner开始看。Scanner是一个扫描器,对纯文本的JS代码进行词法分析,把代码分析成不同的tokens。这会得到一个的单元,是语法上面无法再进行分割的最小单位。有可能是单个的字符,也有可能就原创 2021-06-03 01:33:03 · 215 阅读 · 0 评论 -
JavaScript性能优化1——内存管理(JS垃圾回收机制、引用计数、标记清除、标记整理、V8分代回收、Performance使用)
一、导入随着我们JavaScript代码需要实现的功能越来越复杂,性能优化变得重要了起来。那么哪些内容可以被看做是性能优化呢?本质上来说,任何一种提高运行效率,降低运行开销的行为都可以看做是优化操作。前端优化无处不在,例如请求资源时候用到的网络、数据的传输方式、开发过程中使用的框架等。本阶段讨论的核心是JavaScript语言本身的优化,也就是从认知内存空间的实用到垃圾回收的方式介绍。从而让我们编写出高效的JavaScript代码。在这篇文章里,主要讨论内存管理相关的内容。随着这些年来的硬件原创 2021-06-02 00:06:29 · 1123 阅读 · 7 评论 -
CSS/JS 图片高度固定宽度按比例显示 (纯CSS方法和CSS+JS方法)
目录介绍思路样例代码介绍我这边用的是Vue+Vant,在手机端显示一张图片,高度固定为屏幕的60%,宽度按照比例缩放,超出屏幕宽度部分不显示。思路css中吧高度和其他样式都写好,通过js计算应该设置的宽度。我们获得到屏幕的高度*60%,在查看原图长宽比按照比例获得宽度的像素。样例代码<van-image class="login_pic" :style="getWidth()" :src="require('../../asse原创 2021-05-26 13:20:34 · 1442 阅读 · 0 评论 -
JavaScript获取某个颜色更亮或更暗的颜色
业务需求是,有一堆颜色可以供我选择,选了之后加一个边框表示已经被选择上了。边框颜色要比原本颜色更深一些。开始是参考了下面这篇文章,来获得边框拿圈更深的颜色。javascript对任意颜色获取更亮或更暗的颜色值https://segmentfault.com/a/1190000010284529但是遇到一点问题,大部分颜色看起来效果都挺好的。但是个别颜色,明显获得到的颜色是有差异的我打印了一下中间值,发现几个明显颜色不对的,都是r=0,然后转回16进制的时候发生了问题少了2原创 2021-05-24 12:51:47 · 1068 阅读 · 1 评论 -
Js 点击获取验证码按钮60秒倒计时 修改版
一口气补笔记而不是当时立马写的坏处就是,我现在找不到那时候参考的大佬的链接了……那篇里面的基本上开始倒计时,按钮失效,60秒后可再次点击的功能都是有的。但是我希望能够如果调用接口失败的话,不需要再等待完60秒,而是可以直接重新发送。所以在那篇的代码基础上做了一点微小的改动。按钮功能:点下发送验证码,同时开始60秒倒计时,期间按钮失效,避免用户重复发送。60秒结束后,显示“重新...原创 2019-01-24 16:24:17 · 1181 阅读 · 0 评论 -
JS时间戳转日期时间 手机浏览器兼容
现状是后端提供时间戳给我,我需要转换成正常的日期和时间显示出来。但是发现在ios上能正常显示,华为却和我原本希望显示的不太一样。后来在网上找到了javaScript把时间戳转换为时间格式(已处理兼容格式)(http://www.cnblogs.com/H-csy/p/8888478.html)解决了我现在的问题。下面分享一下我现在修改后的代码,主要是增加了几种日期显示模式,方便...原创 2019-01-24 14:28:39 · 675 阅读 · 0 评论 -
如何直接运行Js文件?Mac Node.js安装使用教程
刚开始LeetCode刷题之旅,虽然其实Python和C++写算法更加顺手,但是毕竟还是想继续面试前端工程师,就决定用Js来完成刷题,还可以巩固一下Js的要点。问题来了,平时都是项目里Html、js、css混着来的,那么我要如何直接运行Js脚本呢。百度告诉我需要用node.js,那就开始安装吧!到官网https://nodejs.org/en/下载安装包,稳妥起见我没下最新版本。点击下载好的安装包接着就一路继续点下去,懒得截图了安装完成!打开我们的终端,输入node -v,如原创 2021-05-05 20:07:14 · 3112 阅读 · 0 评论