随笔分类 - JavaScript
原生javascript语法(包括es6语法)的学习和使用记录。
摘要:### 需求背景 在项目开发中遇到需要前端将后端返回的数据导出的任务,由于后端已经全部返回了相关数据,为避免重复请求接口、减少后端IO提升系统性能,因此需要在前端将后端返回的任务数据导出成 Excel。之前没有做过前端根据数据直接导出excel的案例,特此做记录。 ### 使用的插件 1. xlsx
阅读全文
摘要:需求背景 用户退出当前页面时,修改的数据未进行保存,需要发送接口请求实现自动保存的功能。简单分析需求可知,退出页面包含 路由切换 和 **关闭浏览器标签 **页两种情况: **路由切换:**项目使用 Vue2 开发,离开页面时可以在 beforeDestroy 钩子函数中调用接口实现保存数据,但是这
阅读全文
摘要:前言 今天复习JS基础知识,在看到基本数据类型和引用数据类型的时候,突然有些疑问为什么基本数据类型还会有包装类型,基本类型的包装类型的具体作用是什么?带着这个疑问,我打开了百度... 基本原理 基本数据类型包括 string,number,boolean,undefined,null 和 es6 的
阅读全文
摘要:很经典的例子是0.1+0.2!=0.3(实际等于 0.30000000000000004) 不等的原因 机器中采用二进制存储数据, 比如,35会被存储为: 00100011 (25 + 21 + 20)。 0.375会被存储为: 0.011 (1/22 + 1/2^3 = 1/4 + 1/8 = 0
阅读全文
摘要:利用随机数,使用 switch...case 获取 if 判断。可根据使用场景,调整随机数和判断的范围 var a = '我是大哥'; var b = '我是二哥'; var c = '我是三弟'; var x = Math.floor(Math.random()*10+1);//1-10之间随机数
阅读全文
摘要:let str = 'abbbdsscc'; // match 方法返回匹配的数组 let res = str.match(/b/g); let count = !res ? 0 : res.length; console.log(count) 参考:https://zhidao.baidu.com
阅读全文
摘要:let str = '12×3÷4+6-9'; // 按照 × ÷ + - 分割 使用正则的方式分割 加号是正则的关键字,使用[+] let strArr = str.split(/×|-|÷|[+]/); console.log(strArr); // ["12", "3", "4", "6",
阅读全文
摘要:1. 通过 for...in... 遍历属性 function checkObjNull(obj) { // 如果对象不为空,则会执行到这一步 for (var item in obj) { return true } // 如果为空,返回 false return false } let obj
阅读全文
摘要:本文转自:https://www.jianshu.com/p/f9f6b637fd6c 闭包的典型应用就是函数防抖和节流,本文详细介绍函数防抖和节流的应用场景和实现。 函数防抖(debounce) 函数防抖,就是指触发事件后,在 n 秒后只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数的
阅读全文
摘要:本文转自:https://segmentfault.com/a/1190000007535316 JavaScript 中的 async/await 是 AsyncFunction 特性 中的关键字。目前为止,除了 IE 之外,常用浏览器和 Node (v7.6+) 都已经支持该特性。具体支持情况可
阅读全文
摘要:本文转自: MDN 和 这篇文章 Promise 概述 Promise 对象用于表示一个异步操作的最终完成(或失败),及其结果值。 Promise 对象是由关键字 new 及其构造函数来创建的。该构造函数会把一个叫做“处理器函数”(executor function)的函数作为他的参数。这个“处理器
阅读全文
摘要:1. 执行栈与事件队列 当 javascript 代码执行的时候会将不同的变量存于内存中的不同位置:堆(heap)和栈(stack)中来加以区分。其中,堆里存放着一些对象。而栈中则存放着一些基础类型变量以及对象的指针。 我们知道,当我们调用一个方法的时候,js 会生成一个与这个方法对应的执行环境(c
阅读全文
摘要:对象数组去重(格式化) 前端拿到后端返回的数据后,往往要格式化以满足页面需求。我们可以使用数组的 reduce() 方法对象数组(数组里面存放的是对象)进行去重。 示例代码如下: let data = [ { name: 'tom', id: 1 }, { name: 'jack', id: 2 }
阅读全文
摘要:方法一: // num 可以是 number 或者 string 类型 let num = 1234; let splitNum = Number(num).toLocaleString() console.log(splitNum) // 1,234 Number() 可以换成 parseInt(
阅读全文
摘要:js判断数据中是否存在某个值的方法: indexOf(searchElement) :判断数组中是否存在某个值,如果存在返回数组元素的索引,不存在则返回 -1。 includes(searchElement):判断一个数组是否包含一个指定的值,如果存在返回 true,否则返回 false。 find
阅读全文
摘要:用法概述 所有的现代浏览器都支持 JSON 对象,有两个非常有用的方法来处理 JSON 格式的内容: JSON.parse(string) 接受一个 JSON 字符串并将其转换成一个 JavaScript 对象。 JSON.stringify(obj) 接受一个 JavaScript 对象并将其转换
阅读全文