JavaScript
文章平均质量分 89
关于javaScript的一些知识点
冲浪的鹏多多
接受失败,但绝不选择放弃!
展开
-
Web Woeker和Shared Worker的使用以及案例
最近做的项目出现了界面卡顿的问题,经过一番排查,发现是因为有个数据做了一些格式化和生成转换,本来只有1000条数据,处理完之后变成了 N 万条数据(业务需求),导致页面渲染很慢,甚至会崩溃。原创 2023-11-01 16:41:26 · 682 阅读 · 1 评论 -
JS中bind、call和apply的作用以及在TS装饰器中的用法
目录1,前言1,call1.1,例子1.2,直接调用1.3,将this指向另一个对象1.4,传递参数2,apply2.1,例子2.2,直接调用2.3,将this指向另一个对象2.4,传递参数2.5,合并数组3,bind3.1,例子3.2,直接调用3.3,将this指向另一个对象3.4,传递参数4,TypeScript中装饰器使用5,总结5.1,相同点5.2,不同点1,前言bind、call和apply在函数式编程时候非常有用,本文旨在记录一下我遇到过的一些用法和知识点,也记录一下在装饰器中的用法。1原创 2021-11-22 09:29:36 · 1595 阅读 · 0 评论 -
详解JS中常用的循环和遍历
文章目录1,循环1.1,for循环for循环嵌套1.2,while循环1.3,do while循环1.4,跳出循环continuebreak二,遍历2.1,for in2.2,for of2.3,forEach2.4,map2.5,filter2.6,keys()2.7,values()1,循环循环,就是根据某个条件,重复执行一段代码1.1,for循环语法:for (1 声明循环变量; 2 判断循环条件; 3 更新循环变量) { // 4 要执行的代码块}// 执行顺序 1 ->原创 2021-08-30 09:36:03 · 606 阅读 · 0 评论 -
详解for...in和for...of的区别
1 前言for...in和for...of都是JavaScript中遍历数据的方法,让我们来了解一下他们的区别。2,for…infor...in是为遍历对象属性而构建的,它以任意顺序遍历一个对象的除Symbol以外的可枚举属性,可用break或者throw跳出语法:for (variable in object) { // 在此执行代码}例子:let obj = { name: '张三', age: 18}for(let item in obj) { consol原创 2021-08-23 09:49:38 · 4350 阅读 · 0 评论 -
Promise教程及用法
目录1,介绍2,特点3,缺点4,基本用法5,then6,catch7,finally8,all()9,race()10,allSettled()11,any()12,现有对象转为Promise对象13,实战用法13.1,小程序request13.2,图片加载13.3,封装Toast1,介绍Promise是异步编程的一种解决方案,比回调函数和事件更合理且更强大。可以理解为一个容器,里面保存着某个未来才会结束的事件的结果。2,特点Promise对象有三种状态:pending(进行中)、fulfill原创 2021-08-16 10:01:28 · 835 阅读 · 0 评论 -
JavaScrip条件表达式优化
目录1,前言2,多条件if语句优化3,参数默认值4,Switch语句优化1,前言今早看了一篇文章《JavaScrip实现:如何写出漂亮的条件表达式》,原创于:华为云开发者社区,作者:查尔斯。抱着随便逛逛的心态看了一下,受益匪浅,于是记录一下,我认为对我有用的几点。2,多条件if语句优化在写业务代码的过程中,经常会碰到需要判断多个条件的if语句,如下:function zoo(animal) { if (animal === "dog" || animal === "cat" || anim原创 2021-05-18 11:20:54 · 124 阅读 · 0 评论 -
javaScript中try和catch的使用和跳出forEach循环
目录1,前言2,语法2.1,基本使用方法2.2,自定义报错信息3,跳出forEach循环3.1,跳出forEach3.2,跳出双层forEach1,前言有时项目中处理数据的时候,会存在数据有误,或者为空…等等问题而报错,由于javaScript是单线程,代码是自上而下放到执行栈中执行,如果某一段报错了,后面的代码全都不会执行。为了避免这种情况发生,我们的try和catch就派上用场了。2,语法完整语法try { tryCode - 尝试执行的代码块}catch(error) {原创 2021-03-22 09:20:39 · 3630 阅读 · 0 评论 -
细数JS中实用且强大的操作符&运算符
目录1,前言2,代码+应用2.1,短路运算符 ||2.2,短路运算符 &&2.3,零合并操作符 ??2.4,可选链操作符 ?.2.5,位运算符 & 和 |2.6,双位运算符 ~~2.7,逻辑运算符 !1,前言博主收录了一些在实际开发过程中,很实用且方便的JS操作符,熟练掌握的话,不仅代码看上去高大上(实为装逼),而且简洁大方。2,代码+应用2.1,短路运算符 ||从左往右1,只要有一个条件为true时,结果就为true。2,当两个条件都为false时,结果才为fal原创 2021-01-25 10:53:57 · 358 阅读 · 0 评论 -
原生JS实现京东商城同步放大镜功能
嘻嘻嘻,今天分享一下使用原生JS实现京东购物的放大镜功能,也就是鼠标移动到左侧商品小图,在右侧出现大图,并且实现局部放大。原效果:京东商城第一步.搭建静态页面html<div id="box1"> <img src="xiao.jpg"><!-- 小图 --> <span></span><!-- 鼠标移上去...原创 2019-06-28 09:19:17 · 1572 阅读 · 1 评论 -
JS常用的6种数组排序
1,冒泡排序冒泡排序又称为交换排序。原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则两数对调,再进行下一个元素的比较。如此经过第一次扫描后就可以确保最后一个元素位于正确的顺序。经过第二次扫描可以确保倒数第二个元素位于正确的顺序。由此可知,N个元素经过(N-1)次扫描,就可以完成所有元素的排序。// 冒泡排序function Bubble (arr) { let lengthA = arr.length -1; for(let k = 0;k < lengthA;k原创 2020-12-15 16:52:51 · 912 阅读 · 0 评论 -
JS实用方法DataUrl转为File、url转base64
1,DataUrl转为File/*** DataUrl转为File* @param {String} dataUrl - dataUrl地址* @param {String} fileName - file文件名*/dataURLtoFile(dataUrl, fileName){ var arr = dataUrl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.l原创 2020-08-14 14:43:11 · 2029 阅读 · 0 评论 -
自定义原生JS键盘快捷键和vue-hotkey
vue项目中用到了一些快捷键操作,虽然限制很多,但还是可以实现一些需求的,直接上代码。document.onkeydown = e => { if ((e.ctrlKey || e.metaKey) && e.altKey && e.key === "b") { box.setAttribute("class", "blue"); // 阻止默认事件 e.preventDefault(); };原创 2020-09-09 15:14:10 · 1352 阅读 · 0 评论