随笔分类 - Javascript
JS是全世界最好的语言
摘要:随机色,编码类型转换,参考网上文章,没有照搬别人的,自己进行总结 CSS颜色介绍 :https://www.runoob.com/cssref/css-colors.html 十六进制 => RGB // 颜色:十六进制转RPG function colorHexToRgb(color, isObj
阅读全文
摘要:如题HTML元素转Canvas再转图片然后下载 需要用到插件:html2canvas 可自行到官网下载最新版本 效果图: 示例代码: <!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content=
阅读全文
摘要:需要依赖 xlsx.js 插件,插件可自行到官网下载最新依赖 效果图: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS Excel导入表格数据</title> <style> table { border: 1px sol
阅读全文
摘要:我根据网上文章进行改造,没有直接照搬人家东西,不需要引入任何插件纯原生JS实现 效果图: 调用代码: // 列 let column = [ { text: '姓名', key: 'name' }, { text: '身份证', key: 'personId' }, { text: '手机号', k
阅读全文
摘要:WeakSet 类似 WeakMap,weak 表示弱映射, value (弱弱地拿着)而且必须是对象, 意思是 key 不是正式引用,不会阻止垃圾回收, 但只要 key 存在就不会被垃圾回收机制销毁。 操作方法: add(key) 添成员并返回Set本身 has(key) 通过 键 判断 成员 是
阅读全文
摘要:Set:ES6 新的数据结构,类似数组,但元素唯一 操作方法: add(value) 添成员并返回Set本身 has(value) 通过 键 判断 成员 是否存在 size 返回成员数量 delete(value) 通过 键 移除 成员 clear() 清空所有成员 const obj1 = { n
阅读全文
摘要:WeakMap 就是 Map ,weak 表示弱映射, key(弱弱地拿着)而且必须是对象, 意思是 key 不是正式引用,不会阻止垃圾回收, 但只要 key 存在就不会被垃圾回收机制销毁。 只有四个方法: set(key , value) 添加成员并返回WeakMap本身 get(key) 通过
阅读全文
摘要:Map:ES6 新的数据结构 Map 类似 Object 但 key 可以是各种类型的值(包括Object),而 Object 只能是字符串 常用方法: set(key, value) 添加成员并返回WeakMap本身 get(key) 通过 键 获取 值 has(key) 通过 键 判断 成员 是
阅读全文
摘要:a是标准数据,b是待验证数据,需要做个验证,如果b数据不全就用a的数据补上 一开始思路是用 es6的辅助函数... 或者原生assign 但都有个问题,遇到空对象就没法补上,毕竟空对象不是非 后来参考深拷贝写法实现对象数据验证并补全 代码例子: var a = { // 标准数据格式 name: "
阅读全文
摘要:原生js的“eventemitter 发布订阅”其实跟vue的“bus 中央事件总线”是同一种东西,而我只是用js实现一版出来而已 组件代码: (function () { var msgService = function msgService() {}; msgService.prototype
阅读全文
摘要:hash方法我以前百度找到的,经常用性能好速度快,本文章主要是一步步解释hash方法的过程(其实没多少步) 在这里就能看出每个自定义下标都是独一无二的,其实就相当于数组arr已经去重了 剩下我们就需要把自定义下标给抽取出来放在新数组 代码就这么点,就这么简单,分两步的目的是想简单解释去重过程。 原理
阅读全文
摘要:call、apply、bind是function自带的方法作用是改变function中的this指向 call、apply、bind共同点: (1)改变function的this对象的指向 (2)第一个参数都是this要指向的对象 (3)后续参数继续传参 各自特点: call:接受连续参数 appl
阅读全文
摘要:废话不多说直奔主题,解决思路核心是时间戳相减 灵感来自于我经常用到一个工具方法:格式化时间,也是用时间戳 function GetNumberOfDays(date1,date2){//获得天数 //date1:开始日期,date2结束日期 var a1 = Date.parse(new Date(
阅读全文
摘要:推荐一下我觉得不错关于Promise的好文章,通俗易懂 说起ES6的Promise就要提及一下JQ的$.when()方法,两者基本相同 面试的时候经常会问Promise,如果同学们能在回答Promise时稍微提及JQ的$.when()方法会有加分 http://www.hangge.com/blog
阅读全文
摘要:做项目有个产品需求;具体是要求根据优先级大小排序一遍,然后根据中文名排一遍,简单说就是二级排序了
阅读全文
摘要:写组件的时候经常会用到默认设置,而默认设置经常以对象形式传参 //方法一 function objMerge(obj1, obj2) { //var key; for(key in obj2) { // 如果target(也就是obj1[key])存在,且是对象的话再去调用deepMerge, //
阅读全文
摘要:今天突然发现以前一直用的concat方法进行深拷贝还是出问题了,原数组还是被影响 后来问了下同事,他给出一个很好办的方法,就是用json/字符串转换方法,具体代码如下: var a=[1,2,3];var b=JSON.parse(JSON.stringify(a))console.log(b);b
阅读全文
摘要:在项目中我们经常要处理数据,概括就四个字:增删改查, 我们“增删改查”操作数据其实也就操作内存数据,经常会各种变量互相赋值 那么问题来了,如果是普通的赋值其实也就是简单的浅拷贝数据, 浅拷贝容易被影响数据,深拷贝则不一样。 以下一个小例子: 为什么b数组删除一个下标,a数组也会被影响呢? 这里就涉及
阅读全文