JavaScript
文章平均质量分 58
JavaScript实用技巧
朝阳39
钟爱编程,偏前端开发,欢迎私信我加入EC尽享编程俱乐部共同学习,交流成长!
展开
-
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
获取字符串的长度str.length获取字符串的占位长度英文占一个字符位,其他字符占两个字符位function getZFWlength(string) { var count = 0; for (var i = 0; i < string.length; i++) { //对每一位字符串进行判断,如果Unicode编码在0-127,计数器+1;否则+2 if (string.charCode..原创 2021-05-19 15:06:39 · 1046 阅读 · 1 评论 -
js/javascript 操作对象【全】(含常用的操作对象的lodash)
创建对象通常使用字面量创建let obj1 = {username: 'smyhvae', age: 26};遍历对象 for invar obj = { name: "smyhvae", age: 26, gender: "男", address: "shenzhen"};//枚举对象中的属性for (var n in obj) { console.log("属性名:" + n); console.log("属性值:" ..原创 2021-05-19 08:54:52 · 611 阅读 · 0 评论 -
js/javascript 操作数组【全】(含常用的操作数组的lodash)
创建数组方式 1 - 字面量let arr1 = [];let arr2 = [1,2,3];方式 2 - 新建数组实例let arr1 = new Array(); // 参数为空,得到一个空数组 []let arr2 = new Array(4); // 参数为一个数值时表示数组的长度,得到 [null,null,null,null]let arr3 = new Array(15, 16, 17); // 参数为多个数值时表示数组中的元素,得到[15,16,17]方式.原创 2021-05-18 10:46:24 · 1492 阅读 · 0 评论 -
正则表达式 RegExp【详解】
常用正则表达式大全https://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html验证保留两位小数的正整数或0/^([1-9]\d*|0)(\.\d{1,2})?$/验证手机号码,如13908653654/^(1[3|5|7|8][0-9]{9})$/验证固定号码,如010-86551122或01086551122/^((0\d{2,3})[-]?)(\d{7,8})([-]?(\d{3,}))?$/验证电话号码—手.原创 2021-02-03 20:31:42 · 39518 阅读 · 0 评论 -
JS【详解】ES6 模块规范 vs CommonJS 模块规范
每个 js 文件都是一个模块,默认采用的 CommonJS 模块规范。原创 2024-07-11 11:22:05 · 160 阅读 · 0 评论 -
JS【详解】类 class ( ES6 新增语法 )
本质上,类只是一种特殊的函数。原创 2024-07-10 17:44:06 · 301 阅读 · 0 评论 -
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
使用 break 提前跳出循环(常用于遍历数组,查找目标元素)要获取到数组的下标,需使用 entries。但更推荐使用 Promise.all 实现。使用 return 提前结束当次循环,但。更多 reduce 高级用法见。默认只能遍历数组中的元素。缺点:不支持中断和异步。原创 2024-07-04 17:53:31 · 636 阅读 · 1 评论 -
JS【详解】Symbol (含Symbol 作为属性名,静态方法for 和 keyFor,11 个内置的 Symbol 值)
ES6 语法,表示唯一且不可变的值,常用作属性键值或者唯一标识符。原创 2024-06-25 11:29:57 · 668 阅读 · 0 评论 -
JS【实战】劫持跨域的网页链接跳转
/ href 可能是绝对路径,也可能是相对路径。因此最好转换为 URL 再统一判断。// 同源,则继续默认行为。// 非同源,则弹出提示框。原创 2024-06-21 16:58:44 · 229 阅读 · 0 评论 -
JS 【详解】树的遍历(含深度优先遍历和广度优先遍历的算法实现)
从根节点出发,从上往下对每一层从左到右依次访问。从根节点出发,优先遍历最深的节点。遍历顺序为 abdecf。遍历顺序为 abcdef。原创 2024-06-21 15:53:06 · 316 阅读 · 0 评论 -
JS【数组】交集、差集、补集、并集
【代码】JS【数组】交集、差集、补集、并集。原创 2024-06-21 11:05:53 · 121 阅读 · 0 评论 -
JS 【详解】二叉树(含二叉树的前、中、后序遍历技巧和算法实现)
在节点左边打点,从根节点出发,绕树外围一周,穿过点的顺序即遍历顺序。在节点下方打点,从根节点出发,绕树外围一周,穿过点的顺序即遍历顺序。在节点右方打点,从根节点出发,绕树外围一周,穿过点的顺序即遍历顺序。左、根节点、右 (中序指根节点在中间)左、右、根节点 (后序指根节点在最后)根节点、左、右 (前序指根节点在前)原创 2024-06-12 14:49:46 · 148 阅读 · 0 评论 -
JS 【算法】二分查找
在有序数组中查找目标元素。原创 2024-06-12 11:57:50 · 293 阅读 · 0 评论 -
JS 实现动态规划
【代码】JS 实现动态规划。原创 2024-06-11 10:00:07 · 522 阅读 · 1 评论 -
数据结构(用 JS 实现栈和队列【三种方式】)
先进后出。原创 2024-06-11 09:41:42 · 238 阅读 · 0 评论 -
JS 【详解】双指针排序 -- 数组合并后递增排序
时间复杂度为 O(m + n) ,可简称为 O(n)原创 2024-05-31 17:39:49 · 249 阅读 · 0 评论 -
JS【详解】快速排序
快速排序的时间复杂度为 O(n2)原创 2024-05-31 17:13:14 · 251 阅读 · 0 评论 -
JS【详解】时间复杂度
时间复杂度是从时间维度描述一段代码的复杂程度,由一段代码中执行频次最高的语句决定,用大O符号表述。原创 2024-05-31 16:42:36 · 453 阅读 · 0 评论 -
JS【详解】setTimeout 延时(含清除 setTimeout,计时开始时间,0 秒延时解析,多 setTimeout 执行顺序,setTimeout 应用场景,网红面试题)
setTimeout 是一个 js 内置的函数,用于延时执行代码。原创 2024-05-29 15:14:06 · 2383 阅读 · 0 评论 -
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
因 Set 操作数据的性能比 Array 好,当需要对数据进行频繁操作,且对数据顺序无需求时,可考虑改用 Set 提升性能!若原 set 中已存在新添加的元素,则什么都不会发生,也不会报错。若原 set 中不存在要删除的元素,则什么都不会发生,也不会报错。数组中基于元素的索引 splice() 来删除元素,速度很慢。也可传入数组创建set,但若数组内存在相同元素,则会去重!返回 true / false。类似数组的 .length。原创 2024-05-28 18:15:33 · 617 阅读 · 0 评论 -
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
而Object在遍历时,可能因为属性的插入顺序和内部哈希结构而导致遍历顺序不一致。在Object中,删除一个键实际上仅仅是将其值设置为undefined,而不是真正地从内存中移除,这可能导致内存泄漏和性能下降。都非常快,但在某些情况下,当查找的键在数据结构中不存在时,Map可能会比 Object 更快。量小时差异不大,量大时,Map比object 快,因为 Map内部使用了哈希表,而object在内存分配和处理上开销较大。在键的量较大时,Map 对键的增加、删除、查找和遍历性能都比 object 更好。原创 2024-05-28 16:39:12 · 1099 阅读 · 0 评论 -
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
可见 setTimeout 是 js 的一种异步机制,它并不会阻塞同步代码的执行,具体的执行机制,详见 js【深度解析】代码的执行顺序。setTimeout 仅适用于简单的、一次性延迟,若需要实现串行延时,还需要使用递增时长来实现(需自行计算累计时长,逻辑不够直观)这是最传统的实现 sleep 的方法,确实实现了延时,但会阻塞整个线程,可能会冻结UI或导致程序崩溃,js 延时执行代码的第一想法是使用 setTimeout,但它的效果可能和你想的不一样。附赠 print 的代码。原创 2024-05-23 10:50:06 · 218 阅读 · 0 评论 -
JS 自测题
即自由变量自由变量的查找,是。原创 2024-03-22 15:23:03 · 302 阅读 · 0 评论 -
js 实现动画的两种方案对比:setTimeout vs RAF (requestAnimationFrame)
/ 4s 把宽度从 20px 变为 620px ,即增加 600px,每次需变化 600 px / (60帧/秒 *4秒) = 15px/帧。// 60帧/s 才能确保动画流畅, 即每 1000/60 = 16.7 ms 执行一次动画。// 得出最终动画效果为 每 16.7 ms , 宽度增加15px。// 时间需要自己控制。// 时间不用自己控制。原创 2024-03-21 11:31:49 · 423 阅读 · 0 评论 -
js 捕获异常
可全局监听所有JS的报错。原创 2024-03-19 15:02:25 · 277 阅读 · 0 评论 -
手写深度比较 lodash.isEqual
【代码】手写深度比较 lodash.isEgual。转载 2024-03-13 20:15:31 · 112 阅读 · 0 评论 -
js【详解】ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)
借助 script 标签 向目标服务器加载到 jsonp.js 文件,执行 callback 函数,因本地已定义了 callback 函数,便会触发本地 js 代码的执行,获取到 jsonp.js 文件中的数据,从而实现了跨域。服务器设置 http header,即服务器端将指定网址设置为白名单,允许它以指定的方法进行跨域访问。JSONP 实现跨域的过程:借助 script 标签没有同源策略限制的特点,向跨域的目标服务器加载到需要的数据。所有的跨域,都必须经过 server 端允许和配合。原创 2024-03-13 17:28:28 · 1170 阅读 · 0 评论 -
js【详解】事件
给 DOM 节点绑定事件推荐使用 addEventListener 函数第一个参数:事件名称第二个参数:事件处理函数(第一个参数为 event)第三个参数:true 采用捕获法来处理事件false 【推荐】采用冒泡法来处理事件let div1= document.getElementById('div1');div1.addEventListener('click', function(event){ alert('div1_clicked!');}, false);原创 2024-03-10 23:26:59 · 523 阅读 · 0 评论 -
js【详解】BOM
浏览器对象模型 (Browser obiect Mode 简称 BOM)浏览器对象即 window,调用window对象的属性和方法时,可以省略window。原创 2024-03-10 21:38:24 · 415 阅读 · 0 评论 -
js 获取浏览器相关的宽高尺寸
屏幕分辨率的高: window.screen.height屏幕分辨率的宽: window.screen.width屏幕可用工作区高度: window.screen.availHeight屏幕可用工作区宽度: window.screen.availWidth。原创 2024-03-10 20:57:40 · 411 阅读 · 0 评论 -
js【详解】DOM
DOM 的本质是浏览器通过HTML代码解析出来的一棵。原创 2024-03-10 18:13:45 · 564 阅读 · 0 评论 -
js 类数组 转 数组
拥有数字索引和length属性的对象,但并不具备数组的方法和属性。原创 2024-03-10 14:09:58 · 384 阅读 · 0 评论 -
js【详解】async await
async await 实现了使用同步的语法实现异步,不再需要借助回调函数,让代码更加易于理解和维护。原创 2024-03-09 23:54:52 · 511 阅读 · 0 评论 -
js【深度解析】代码的执行顺序
我们将每一句要执行的 js 代码当做一个任务,则 js 代码可以按照其执行方式的不同,按下图分类微任务:被放入微任务队列(micro task queue)中等待执行的代码因为Promise、async 、await 都是 ES6 语法定义的宏任务:被放入 Web APIs 中等待执行的代码因为 setTimeout 、setInterval 都是浏览器定义的。原创 2024-03-09 22:59:25 · 1151 阅读 · 0 评论 -
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
Promise 是一种异步编程的解决方案,本身是一个构造函数自带resolve,reject,all 等方法,其原型上还有then、catch等方法。原创 2024-03-09 10:43:57 · 1026 阅读 · 0 评论 -
js 【详解】异步
将只能嵌套的回调函数,变成了可串联的,更易阅读和维护!为了解决回调地狱的问题,诞生了 Promise。但回调函数实现异步的方式,容易形成。原创 2024-03-09 08:25:13 · 437 阅读 · 0 评论 -
js【详解】event loop(事件循环/事件轮询)
event loop 是异步回调的实现原理。原创 2024-03-08 18:05:04 · 545 阅读 · 0 评论 -
js【详解】bind()、call()、apply()( 含手写 bind,手写 call,手写 apply )
必备知识点:js 【详解】函数中的 this 指向_js function this-CSDN博客。原创 2024-03-08 10:16:02 · 511 阅读 · 0 评论 -
js【详解】原型 vs 原型链
如下范例: class Student 创建了 实例 xialuo。原创 2024-03-07 11:55:42 · 836 阅读 · 0 评论 -
js【详解】instance of
判断某实例,是否是目标对象的构造函数构建的本质:判断实例是否属于其原型链。原创 2024-03-07 11:53:23 · 419 阅读 · 0 评论