浅谈js词法环境-编程思维

JavaScript 词法环境 本文主要讲解JS词法环境,我们将看到什么是词法环境,词法范围如何工作,函数内部的名称如何解析,内部属性,弄清楚词法环境利于我们理解闭包。让我们开始吧... 什么是词法环境? 在理解闭包时,最大的混淆来源是术语“词汇环境”,或者只是“词汇”这个词。在计算机科学中术语“词汇”仅表示“源代码”,或者换句话说,“与写的代码有关”。 大家请考虑以下代码: var a =

javascript 评测代码运行速度-编程思维

一、使用 performance.now() API 在 JavaScript 中,可以使用 performance.now() API 来评测代码的运行速度。该 API 返回当前页面的高精度时间戳,您可以在代码执行前后调用它来计算代码执行所需的时间。 例如: let t0 = performance.now(); // 执行需要测试的代码 for (let i = 0; i < 100

javascript 高阶函数-编程思维

一、高阶函数 JavaScript 中的高阶函数是一种接受函数作为输入或返回函数作为输出的函数。它们提供了灵活的方式来处理函数,并允许把函数作为参数或返回值传递。它们是函数式编程的重要组成部分,并且可以提高代码的可读性和可维护性。 高阶函数的一个常见用法是对数组进行操作,例如使用 map()、reduce() 和 filter()。这些函数允许您在数组上应用自定义的函数,并对数组的每个元素执行操

学习进阶-编程思维

如何实现队列和双队列数据结构中队列的核心思想和我们排队买票看电影一样,关键是谁排在前面,谁就可以先买到票。入队(enqeue),顾名思义就是在队伍后面加了一个人排队。按照先入先出的规则,排在最前面的人买完票了以后,就会出队(dequeue)。双队列(deque)通常我们排队的时候,都是遵循先进先出的规则,但是在有些特殊的情况下,也会有特例。在 JavaScript 中呢,同样有一个 unshift

终身学习者-编程思维

本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi ,包含一线大厂面试完整考点、资料以及我的系列文章。Markdown 是一种轻量级的标记语言,我们可以用它来格式化纯文本文档。GitHub上的每个仓库都有自己的README文

个人文章-编程思维

NutUI 4.0 Github 地址:github.com/jdf2e/nutuiNutUI 4.0 官网:nutui.jd.com前言技术日异月新、发展创新、持续的迭代已成为常态。NutUI 虽经过 v1.0、v2.0、v3.0 三次技术蜕变,仍面临很多兼容、破坏性调整的需求。随着我们自身承接业务的多样性变化及社区诉求日渐增多,大调整和升级势在必行,经过团队及社区开发者 3 个多月的开发和自测

个人文章-编程思维

前言在涉及到网络层面的相关内容时,不免会联系到 HTTP、TCP、WebSocket 等,但相信大部分人都并不是很清楚其中的一些关系和概念,特别是需要你去做语言表述时,网上有不少优秀的资料和文章,但知识仍需要自己去消化和总结,于是有了本文!!!本文的核心内容就是 WebSocket,主要从以下几个方面来进行介绍和实践:是什么 WebSocket(what)为什么需要 WebSocket (why)

个人文章-编程思维

前言上篇文章5K字 由浅入深聊聊Promise实现原理,中讲述了Promise内部的实现原理。今天来聊聊async与await,那么async与await到底是什么呢。都说是语法糖,就来深入理解下async/await吧来看下MDN的概念async 函数是使用async关键字声明的函数。async 函数是 AsyncFunction 构造函数的实例,并且其中允许使用 await 关键字await

九旬的博客-编程思维

前言我们在 Web 开发过程中,有很多用到音频元素audio的场景,如音乐播放器、语音播放等功能,但是由于原生组件有以下缺点:原生UI样式丑,在追求美观的页面中需要重写元素样式,而且支持重写的样式不多。浏览器兼容问题,不同浏览器的音频元素展示不同。因为以上两个问题,这就导致我们需要对原生的audio进行修改时比较困难。而对于大多数音频的需求,我们可以使用满足我们要求的第三方组件库中选择,如:西瓜播

九旬的博客-编程思维

浏览器截图方案分析页面截屏是前端经常遇到的需求,比如页面生成海报,弹窗图片分享等。以下是我整理三种截图方案:html2canvasdom-to-imagewebRTChtml2canvashtml2canvas 用的比较广泛的前端截图方案,先将 DOM 一个个 转为 Canvas 然后导出图片(使用 canvas 自带的 toDataUrl、toBobl)即可。使用起来应该是兼容性比较好的方案了,

个人文章-编程思维

场景:使用ant-design-vue的table组件,要求实现新增,直接在表格中增加一行,双击或单击当前行状态变为可编辑状态,点击其他dom,失去焦点时,进行自动保存。示例:编辑状态@dblclick.native="dbClickFun(record, index, item)" 双击修改当前行状态。record.isEdit设置为[email protected]="blurFjxx($event, rec

个人文章-编程思维

web端iconfont使用引用方式: 1.unicode 引用 (不支持多色,支持按字体的方式去动态调整图标大小,颜色) 2.font-class 引用 (unicode使用方式的一种变种,语意明确,容易分辨是哪个icon,本质上还是使用的字体,所以多色图标还是不支持的) 3.symbol 引用(全新的使用方式,未来的主流,推荐用法。支持多色图标、支持像字体那样来调整样

个人文章-编程思维

某些场景下,我们拿到的键名与预期的键名不符,这个时候就需要替换键名来得到我们想要的内容let obj = [ { id:1, title:'zs' }, { id:2, title:'ls' } ]; // 但是我们实际想要的效果是: {id:1,name:'zs'} // 此时可以把对象转为string 然后使用字符串方法替换 conso

学习进阶-编程思维

单链表链表就是把零散的节点(node)串联起来的一种数据结构。在每个节点里,会有两个核心元素,一个是数据,一个是下一个节点的地址,我们称之为后继指针(next)class Node { constructor(data){ this.data = data; this.next = null; } }class LinkedList { constructor(){