
javascript
兮木兮木
此人不懒,也什么都没有写。
展开
-
字符实体、字体图标与Unicode码
在 HTML 中,某些字符是预留的,例如小于号「」等,浏览器会将它们视作标签。我们比较熟悉的字符实体有空格「 」,小于号「」等。「你好」二字分别是 Unicode 字符 U+4F60 和 U+597D,十六进制表示的 code point 数值「4F60」和「597D」,同时也就是十进制的「20320」和「22909」。每个字体图标在定义的时候有一个Unicode码,这个Unicode可以是自定义的。以「&#」开头的后接十进制数字,「&#x」开头的后接十六进制数字。原创 2023-02-09 09:52:17 · 1502 阅读 · 0 评论 -
Proxy的has拦截与with关键字
应用场景可以是在做沙盒环境隔离这方面原创 2022-11-07 17:02:06 · 493 阅读 · 0 评论 -
案例演示WeakMap的弱引用与垃圾回收
WeakMap只能将对象作为键名(null除外)键名引用对象是弱引用WeakMap不可遍历弱引用:用案例来证明GC的回收过程1. Map原创 2022-06-28 15:39:17 · 750 阅读 · 1 评论 -
关于eventListener 在bind this后无法用removeEventListener移除的问题
先说结论:bind可以指定this通过addEventListener添加事件,removeEventListener移除监听事件,但是监听函数添加bind指定this后,就无法正常移除原因:fn.bind(xx)会返回一个新函数,也就是说 fn.bind(aa) === fn.bind(bb) 为 false解决:知道了产生问题的原因,那么解决也就容易了可以先把 fn.bind(xx) 返回的函数保存起来removeEventListener的时候,移除这个保存的函数即可。案例:2秒.原创 2021-08-23 15:22:40 · 1132 阅读 · 2 评论 -
js位运算的一个案例解析
js中位运算用的比较少,虽然直到位运算效率更高,但是实际项目里却是想不起来用。偶然看到一段代码,觉得挺巧妙(也许只是我单纯觉得巧妙)就分析了一下。let res = (Math.floor(Math.random() * 0xff) << 16) + (Math.floor(Math.random() * 0xff) << 8) + Math.floor(Math.random() * 0xff)这段代码会返回一个随机的颜色值,结果转换为.原创 2021-08-03 23:09:18 · 312 阅读 · 0 评论 -
前端导出PDF之pdfmake
pdfmake通过编辑特定格式的 pdf描述对象,传给pafmake ,来生成pdf默认pdfmake不支持中文如何支持中文要支持中文,就需要配置中文字体。根据文档介绍有两种方式:1.使用在线字体配置。2.使用本地 vfs(virtual file system)配置字体。本文介绍第二种。文档描述的步骤:Install pdfmake npm install pdfmake安装 pdfmakeGo to package directory ./node_modules/pdfmak.原创 2021-07-10 14:20:17 · 2912 阅读 · 0 评论 -
import xxx from xxx 与 const xxx = require(‘xxx‘) 中的this问题
偶然看到一段代码,大概意思如下// 2.jsthis.a = this.a || {};this.a.b = { "name": "Eric"}this.c = { "age": "20"}this.d = { "hobby": "ball"}// 1.jsconst abc = require('./2.js');console.log(abc);// 打印结果:// { a: { b: { name: 'Eric' } }, c: {原创 2021-07-08 18:09:57 · 841 阅读 · 0 评论 -
自定义事件 Event 与 CustomEvent
自定义事件 Event 与 CustomEventwindow.addEventListener() 添加事件监听window.dispatchEvent() 抛出事件Event算是一个顶级接口,CustomEvent基于Event,增加了部分参数Eventevent = new Event(typeArg, eventInit);typeArg是DOMString 类型,表示所创建事件的名称。eventInit可选是 EventInit 类型的字典,接受以下字段:原创 2021-05-10 02:14:05 · 1472 阅读 · 0 评论 -
js xlsx使用说明(主要讲导出表格与设置表头相关)
workbook: 可以理解为XLSX对excel文件描述的一个对象,可通过 XLSX.utils.book_new()来创建,该方法返回workbook对象worksheet:可以理解为XLSX对 excel 中sheet的描述的一个对象,可通过 XLSX.utils.aoa_to_sheet 、 XLSX.utils.json_to_sheet 、XLSX.utils.table_to_sheet 等方法创建,下面会具体讲每个方法的使用。cellAddress: 单元格的地址对象 { c: nu.原创 2021-03-11 03:27:32 · 17657 阅读 · 10 评论 -
js封装私有属性(闭包的应用)
私有属性就是不希望被外部访问的,要通过封装者的方法去访问,下面总结几种常见的封装方式普通方式,这种方式就是一般的封装,私有属性不通过封装者的方法也能访问function Person() { this.name = 'Eric'}Person.prototype = { getName() { return this.name; }, setName(name) { this.name = name }}let p.原创 2021-01-20 17:47:43 · 1009 阅读 · 0 评论 -
js数组的reduce方法的使用
reduce常用来做累计,大部分业务场景下,reduce可以实现的功能通过forEach、map等遍历也可以实现。1、语法摘要array.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])callback执行数组中每个值 (如果没有提供 initialValue则第一个值除外)的函数,包含四个参数:accumulator累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,.原创 2021-01-12 03:10:00 · 343 阅读 · 1 评论 -
JSZip压缩与解压的基本使用
JSZip压缩与解压的基本使用//相关api介绍,具体可参考jszip源码中的注释/** * 从文档中读取文件 * * @param Path 要读取文件的相对路径 * @return File matching path, null if no file found */ JSZip.file(path: string): JSZip.JSZipObject | null;/** *把读取的文件内容以哪中格式展示出来 *OutputType: base64, string原创 2020-10-11 15:43:16 · 7675 阅读 · 0 评论 -
h5 操作浏览器历史记录的api pushState replaceState 以及 popstate 事件
在history中跳转使用 back(), forward()和 go() 方法来完成在用户历史记录中向后和向前的跳转。向前和向后跳转在history中向后跳转:window.history.back();这和用户点击浏览器回退按钮的效果相同。类似地,你可以向前跳转(如同用户点击了前进按钮):window.history.forward();跳转到 history 中指定的一个...原创 2020-05-01 21:11:11 · 1048 阅读 · 0 评论 -
禁止ios浏览器页面滚动的橡皮筋效果
问题:在做手机端,通过拖拽调整某个div大小时,拖拽引起了整体页面的弹动方法一:通过css设置body宽高html, body { width: 100%; height: 100%; overflow: hidden}方法二:阻止body的touchmove事件单纯解决橡皮筋效果,可以将body的touchmove事件禁止,可以替代第一种方法documen...原创 2020-04-08 12:43:01 · 2288 阅读 · 1 评论 -
关于element-ui 的upload组件 在vue中应用的几点说明(主要说http-request自定义上传过程的参数的使用)
因为upload组件默认用的http的请求,现在需要用websocket去做上传,经过查看element-ui的文档没找到方便的方法,故使用了http-request自定义上传的方式来上传文件几个配置参数的说明action :上传的url地址,必填项,如果用自定义上传可以随便填个字符串http-request : 覆盖默认的上传行为,可以自定义上传的实现 ,传入一个函数,函数的参...原创 2020-04-05 02:16:21 · 3542 阅读 · 0 评论 -
css声明变量 :root 伪类 以及 getPropertyValue()方法的各种细节
:root 伪类及css声明变量:root选择器用匹配文档的根元素,在HTML中根元素始终是HTML元素。但是:root的权重高于html声明css变量,一般声明在:root根元素上,这样文档全局都可以取到声明的变量名以--开头比如--text-color在其他css样式中引用变量用var(--text-color)相同的css变量,子级会覆盖:root级,也就是说,当某个元素取cs...原创 2020-03-08 20:38:40 · 1840 阅读 · 0 评论