JavaScript
文章平均质量分 79
....
白瑕
20240907随缘更新,看到好东西会放一下.
展开
-
JavaScript 构造函数、原型和原型链
构造函数产生对象.我们说原型对象原型对象,prototype的值必是对象类型(Javascript里各种类型都可以说是对象,要指名是对象的时候就说对象类型).通过new一个构造函数的方式创建对象,对象的原型prototype与构造函数的prototype相同,对象的构造函数constructor为该构造函数.Mozilla实现的Javascript暴露了属性用于直接读写对象的原型,不推荐使用,因为并非所有浏览器都实现.原创 2024-09-21 18:53:27 · 444 阅读 · 0 评论 -
javascript 关于监听鼠标按键的补充
【JavaScript 监听鼠标左右同时按下/同时按下移动 - CSDN App】http://t.csdnimg.cn/f2BpN。在DOM规定下,click事件上有button属性,这个属性有三个可用值1、2、3分别对应左中右三个鼠标键按下.“很显然,DOM定义的button属性比IE这一套更简单也更有用,毕竟同时按多个鼠标按键的情况很少见.”现在要监听鼠标多键同时按下/释放似乎不得不使用一些复杂类型去存储状态,而以前事情并不这样麻烦.这真的有让事情变得更简单更有用吗?原创 2024-09-21 11:40:29 · 459 阅读 · 0 评论 -
JavaScript 如何阻止右键浏览器默认菜单?
阻止后你可以自定义鼠标右键事件处理方法,比如弹出你自定义的菜单.原创 2024-09-21 11:23:29 · 183 阅读 · 0 评论 -
JavaScript 如何判定用户输入文本的方式?
事件以获取其事件对象event,该事件的事件对象上有。原创 2024-09-21 10:59:13 · 218 阅读 · 0 评论 -
Promise查漏及回调地狱结构优化
依据《JavaScript高级程序设计》对Promise期约相关进行查缺补漏.原创 2024-09-15 18:26:50 · 564 阅读 · 0 评论 -
Javascript 如何利用对象池避免频繁的垃圾回收?
最近挤不出时间写,看到有用的东西找机会整理上来吧.几个月没上线,平台把文章都加上vip了,昨天解了好多,会继续解完.原创 2024-09-08 18:28:17 · 648 阅读 · 0 评论 -
构造函数内的方法 写在函数体与写在原型上的区别
以前没注意过, 去创建一个构造函数的时候, 方法都是直接写在函数内的. 在构造函数需要多次实例化的情况下有缺点, 不过幸好以前项目里的构造函数也不需要多次实例化, 缺点没有生效.原创 2023-08-22 18:37:31 · 886 阅读 · 0 评论 -
JavaScript for与forEach结束本轮循环/结束循环
我以前一直想尝试一下这个for里嵌switch来着, 找不到合适的机会, 今天写node脚本刚好遇到, 必须狠狠的尝试一下.原创 2023-05-25 02:02:06 · 1277 阅读 · 0 评论 -
JavaScript 监听鼠标左右同时按下/同时按下移动
基于原生JavaScript, 在使用three.js的raycaster模拟瞄准及射击时用到.原创 2023-04-06 14:21:16 · 1379 阅读 · 0 评论 -
给数据标注系统加个2D标注功能
在照片上进行2D数据标注, 对2D照片上的标注误差进行手动修正.原创 2023-03-18 01:52:17 · 1260 阅读 · 3 评论 -
JavaScript 代码不嵌套主义
看过不少过度嵌套的代码, 我真正意识到问题的严重性是刚入职那会, 我在一个老项目里看到了40个连续的else if, 套了6层的iffor和forEach, 因为我们并没有做什么限制代码嵌套的提前约定.呃, 那之后认识到会写代码和代码写得好完全是两种概念, 能够实现复杂的需求也并不能说明代码写得好, 开始注重代码结构方面.事实是, 很多时候需要编写的逻辑本身就很恶心, 乍看之下, 堆页岩般的判定嵌套里似乎每一层都是必要的, 也只能说尽量让它看起来不那么恶心.嗯, 比如少来几次Tab。原创 2023-02-18 16:20:22 · 791 阅读 · 0 评论 -
解决原生template标签在Vue中失效的问题
需要原生Javascript + three.js的数据标注平台加入Vue框架.本来挺顺利的, 我直接在mounted周期做了初始化, 然后剩下的操作还是交给JavaScript文件执行, 最后发现里面有很明显的事件触发问题.原创 2023-02-17 16:45:11 · 2929 阅读 · 0 评论 -
JavaScript 二叉树
同前面说到的散列表结构, 树也是一种非顺序数据结构, 对于存储需要快速查找的数据非常有用.我会先叙述一下何为树结构, 然后去实现一个基本功能完备的二叉树作为例子.本来应该叫’JavaScript 树’的, 但是我一直在说二叉树…整个篇幅基本给了二叉树, 然后索性就叫二叉树了.栈的话前一段时间做了个撤销恢复功能, 用双端队列改造了一下限制了步数.这种结构目前没想到要怎么去应用, 或许在使用一些库的时候能用到?原创 2023-02-13 20:54:31 · 456 阅读 · 0 评论 -
JavaScript 递归算法
第一次认识递归这个概念在两年前, 一个递归函数(不是深拷贝)看了好久才看懂, 在函数内部再次调用自己, 返回一个新的值, 再此期间还涉及多次对自己的调用, 这对于当时的我还是太过超前了.不过直到最近, 我对’递归’的认知也几乎只是这些, 我还是希望能有更深刻的理解.迭代比递归执行起来要快很多, 递归相较于迭代需要的代码更少且更易理解, 另外, 有了尾调用优化, 递归的多余消耗甚至可能被消除.原创 2023-02-04 17:14:31 · 1357 阅读 · 0 评论 -
ECMAScript2019 类私有域
呃, 被只读属性绊了一跤误打误撞去了解了它.我需要深拷贝一个对象, 但这个对象内有一个position不得不说这个""彻彻底底的误导了我, 让我觉得这是私有属性造成的(但其实只要用处理一下writable就好了.)但在我发现之前还是去研究了一下.原创 2023-02-01 00:49:43 · 546 阅读 · 0 评论 -
JavaScript WeakMap
我在处理一个复杂对象的深拷贝方法时接触到WeakMap, 其作为缓存结构以解决对象内部的循环引用问题. 为了改造这个方法, 决定研究WeakMap。原创 2023-01-24 02:37:20 · 1740 阅读 · 0 评论 -
JavaScript 如何正确的分析报错信息
JavaScript 如何根据报错信息快速锁定错误位置.原创 2023-01-14 15:02:23 · 2345 阅读 · 0 评论 -
JavaScript 基于栈和命令模式的撤销恢复操作
JavaScript基于栈和命令模式完成操作的撤销与恢复.原创 2023-01-06 23:52:40 · 1505 阅读 · 0 评论 -
JavaScript 如何简化代码里的多级判定?
`JavaScript`用二元运算符和`if`拆分优化多级判定结构, 用`JavaScript`逻辑运算符替换`if-else`结构判定. js代码优化.原创 2022-10-26 21:53:43 · 897 阅读 · 0 评论 -
JavaScript 利用new Set()抽离数组中所有具备相同属性值的对象.
提取JS数组中所有具备相同属性的对象构成数组, JS提取数组相同属性对象,new Set()数组去重.原创 2022-10-11 21:58:01 · 1242 阅读 · 2 评论 -
JavaScript 基于reduce方法实现数组内对象的同属性运算
JavaScript 基于`reduce()`方法对数组内多对象的同属性运算, `reduce()`遍历数组求和, `reduce()`方法的基本使用, `reduce()`方法如何内置判定, `reduce()`操作数组内对象.原创 2022-09-22 23:31:41 · 1549 阅读 · 0 评论 -
JavaScript 原型、继承、原型链
部分理论参考《JavaScript权威指南》每一个对象都有与之相关的原型(prototype), 原型是在实例创建之初就设定好的, 作用是继承属性.使用new调用构造函数会自动创建一个新对象, 因此构造函数本身只需要初始化这个新对象的状态即可. 调用构造函数的一个重要特征是构造函数的属性将会作为新对象的原型.通过new表达式创建的对象通常会继承一个constructor属性, 这个属性指代创建这个对象的构造函数, 因此一个对象的应该为它的, 即其构造函数的原型(原型属性), 但对于由Object.cr原创 2022-06-23 20:41:41 · 253 阅读 · 0 评论 -
JavaScript 变量提升的作用
复习一下变量提升机制, 本来是打算做个错题集来着…扯的有点多了)我以前写过一篇JavaScript预解析机制, 哈, 刚才去看了一下差距还是有的.不同于在编译后可以直接运行的编译型语言, JavaScript作为一门解释型语言, 在执行之前要先由解释器进行转换, 形成机器可以理解阅读的机器语言, 要说的变量提升属于这个转换过程中的一步.变量提升存在于这个时期.变量声明后还未初始化, 默认值undefined, 经过预解析步骤中的变量提升, 引擎解析的时候就能够最先遇到这些声明, 也就提前在内存中分配空间原创 2022-06-22 18:33:17 · 522 阅读 · 0 评论 -
整理一下昨天二面的题目
CSS也被放在JavaScript部分之后了, 大概就问了这些, js部分我记了8个让我印象比较深刻的问题.讲真我对于prototype的理解就只局限在构造函数那一块, 还是做题积累的一点知识.我当时说: “常见的情况是使用构造函数来生成对象, 然后…函数prototype里的属性会成为生成的对象的里的属性, 也就是这个对象里的属性.”prototype我真的就只知道这个作用了.现在看, 其实以前接触过这个, 就是向构造函数的prototype上加属性, 然后再ne......原创 2022-06-15 17:10:25 · 589 阅读 · 0 评论 -
JavaScript 类型隐式转换规律
所有数据类型与String进行的加法都直接拼接字符串.除Number外, 其他数据类型之间的非加法运算都会在双方进行Number类型转换后进行.原创 2022-06-01 19:39:36 · 1738 阅读 · 0 评论 -
浏览器对缓存的使用规则
Cache缓存机制文章目录Cache缓存机制一、关于Web缓存1.Web缓存-概念2.Web缓存-作用二、浏览器缓存机制三、使用步骤1.引入库2.读入数据总结一、关于Web缓存1.Web缓存-概念Web缓存(即HTTP缓存),是指Web资源(如html页面,图片,js等)存在于Web服务器和客户端(浏览器)之间的副本。Web缓存系统既可以指设备,也可以指计算机程序。2.Web缓存-作用其是被用于临时存储(即缓存)Web资源(如html页面,图片,JavaScript等),以减少服务器延迟,原创 2021-02-25 02:09:52 · 157 阅读 · 0 评论 -
HTML5 classList 操作类名
使用HTML5 classList在JS中操作类名文章目录使用HTML5 classList在JS中操作类名前言一、classList.add()二、classList.remove()三、classList.replace()四、classList.toggle()五、classList.contains()总结前言今天遇到一个需求,需要在每次点击的时候触发CSS动画,但是按照以往的经验(走的弯路),一个CSS动画在触发一次之后,如果不做出改动,下次再触发就播放不了了.比如给一个按钮添加一个点原创 2021-09-28 20:32:40 · 1585 阅读 · 2 评论 -
理解JavaScript的宏微任务
尝试理解JavaScript中的宏任务与微任务文章目录尝试理解JavaScript中的宏任务与微任务前言一、分拣原则一、图文示例总结前言JS是一门单线程语言,这意味着正常执行的话所有任务堆在一起需要排队,当然,也就像细水管里的小球一样,一个流不出去,后面的都得等着.这未免有些不合理,主线程完全可以把目前无法执行或者不必执行的任务先挂起,就像堵车的时候把最前面那个慢吞吞的车给掀了,让大家先过.等到这个被挂起的程序能执行了也该执行了,再把它放下来.这是同步任务和异步任务,但其实异步任务还可以细分为宏原创 2021-09-24 18:52:15 · 262 阅读 · 0 评论 -
详解Web API requestAnimationFrame
详解requestAnimationFrame API文章目录详解requestAnimationFrame API前言一、初识requestAnimationFrame二.动画的原理二、为什么使用requestAnimationFrame1.影响因素:屏幕刷新率2.避免屏幕刷新率影响如何使用requestAnimationFrame总结前言在前端,想要实现动画效果的方法多种多样,但我们常用的也就那么几种:在JS中有使用setInterval频繁调用来实现的方法,css3则是提供了transiti原创 2021-09-01 22:12:41 · 389 阅读 · 0 评论 -
JavaScript 闭包详解
JavaScript闭包文章目录JavaScript闭包一、为什么要闭包二、外部得以访问函数内变量三、某些变量得以常驻内存1.垃圾回收机制对闭包的处理2.结合立即执行函数来保存某些变量总结# 前言## 1.什么是闭包函数闭包函数是声明在另一个函数内的函数,是被嵌套在父函数内部的子函数,在《JS高级程序设计-第3版》中对闭包解释是:"闭包是指有权访问另外一个函数作用域中的变量的函数."闭包函数可以访问[包裹其的函数]内的各种参数和变量,即便外部函数已经执行完毕.(至于为什么请看下文).一、为什么原创 2021-08-04 22:26:44 · 2296 阅读 · 0 评论 -
两个原生JS跨页面传值的小方法
文章目录前言一、localStorage本地存储二、URL传值总结这会不会是今天写的最简单的一篇文…?前言今天在学校做2020年的题,碰到一个需求:用户在这个页面选择了症状,需要在下一个页面显示出用户选择的项;这,这就触及到我的知识盲区了…我突然想到前几天写Vue用了localStorage,总算是没空着,但还是想知道会不会有更好的方法.一、localStorage本地存储不能用sessionStorage,sessionStorage在当前会话关闭之后会进行销毁,存储的东西在下个页面全是原创 2021-07-28 20:25:39 · 3762 阅读 · 0 评论 -
async&await异步请求处理办法
async&await异步请求处理办法目录async&await异步请求处理办法前言一、async1、async函数2、回调async函数以获取结果二、await末前言async函数(官方):使用async关键字声明的函数,是AsyncFunction构造函数的实例, 内部可以使用await关键字。两者的结合让我们可以用一种更简洁的方式完成基于Promise的异步行为,而无需刻意地链式调用Promise。因为await在没说完async的情况下不好进行,我打算先说async,当然原创 2021-07-27 13:41:27 · 3696 阅读 · 0 评论 -
箭头函数的this
文章目录一、熟悉箭头函数1.传一个参数2.传多个参数二、this指向问题总结一、熟悉箭头函数箭头函数是ES6新增的语法,当准备把函数作为参数传递时,用箭头函数看起来会比较简洁,简洁,但是可读性略差(尤其是它被省略的根本不像个函数的时候).1.传一个参数 const 函数名 = 参数 => { xxx函数体 xxx函数体 }或 const 函数名 = (参数) => { xxx函数体 xxx函数体 }2.传多个参数const 函数名原创 2021-05-29 15:07:14 · 1677 阅读 · 1 评论 -
let、const块级声明与块级作用域绑定
目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言在ES6之前JS的作用域有三种,它们分别为:全局作用域函数作用域Eval作用域在ES6中新引入了“块级作用域”这一概念,伴随这一概念诞生的是两种新的变量声明方法,他们依赖于块级作用域而存在。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as原创 2021-03-08 21:52:46 · 517 阅读 · 0 评论 -
for (var key in Obj)遍历JS对象/数组
这个方法还可以遍历数组,就放在一起写了。在遍历对象时: var file = { sd:"dskdn", fg:"dadfc", hk:"iel" } for (var k in file) { console.log(k);//得到属性名、方法名 console.log(file[k]); }下面是遍历对象时输出k的结果,输出属性名:但在遍历数组时,输出原创 2021-03-04 17:34:41 · 2963 阅读 · 3 评论 -
XMLHttpRequest对象&AJAX技术的基本使用
AJAX技术使用方法文章目录AJAX技术使用方法Ajax技术的诞生一、Ajax的概念?二、XMLHttpRequest对象的概念1.XMLHttpRequest对象的属性2.XMLHttpRequest对象的作用三、Ajax技术基本使用1.使用GET法提交数据2.使用POST法提交数据四、JQueryAjax总结Ajax技术的诞生Web应用程序是一种新的潮流,但伴随Web的逐渐发展,出现的是等待,等待服务器的响应,等待刷新和生成。在这样的背景下,2005年,Ajax诞生了。一、Ajax的概念?Aj原创 2021-02-25 22:38:00 · 563 阅读 · 0 评论 -
JavaScript正则表达式(1)
正则表达式基础一、正则表达式的解读1.正则表达式的概念和作用这里我不引用官方的叙述了,你大体可以把他理解为一种选择器,像是CSS里的那种,就是丑了亿点,选择的东西也不是HTML标签而是JavaScript里的字符。在JS里的字符串中检索内容可以用“index of()”和正则表达式(regular expression,具有规律的表达方式),但是前者受制于只能检索“写死了”的字符这一弊端,泛用性上比正则表达式略逊一筹。总之正则表达式是为了检索字符串中指定的字符(子串)而存在。2.正则表达式里的原创 2021-02-24 03:51:51 · 232 阅读 · 0 评论 -
JavaScript 预解析机制
JavaScript预解析文章目录JavaScript预解析前言一、预解析受体二、对var的预解析三、对function的预解析总结前言浏览器中的JS解析器运行JavaScript的过程为先进行 预解析 之后再进行 代码执行。主要为JS执行机制的问题。一、预解析受体预解析会把JS代码中的所有var和function提升至其所在作用域的最上方(内部的最上方),以进行优先的声明/定义。告诉全局作用域某某变量被声明出来了,并在内存中提前开辟空间。受体: var 、 function二、对原创 2020-12-06 23:14:40 · 193 阅读 · 0 评论 -
JavaScript数据类型
JavaScript数据类型文章目录JavaScript数据类型前言、数据分类的重要性一、简单数据类型基本类型1.数字型2.字符串型3.布尔型特殊类型二、复杂数据类型1.对象型2.数组型3.函数型三、简单和复杂数据类型的区别简单数据类型复杂数据类型总结前言、数据分类的重要性不同类型的数据占用的存储空间不同,为方便将数据按所需内存大小分类,以充分利用存储空间,定义出了各种数据类型。JS是一种弱类型语言,在不需要提前声明变量的数据类型,在程序运行过程中,数据的类型会被自动确定,相同的变量在使用时也能被原创 2021-02-07 01:29:42 · 150 阅读 · 0 评论