![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ECMAScript
梦殇918
朝着全栈奔跑的小猿一枚;
展开
-
使用ajv-keywords给json schema添加自定义关键字
JSON Schema的关键字太少,有些默认的校验无法满足效果,需要自定义校验关键字,ajv-errors提供一些常见的validator关键字用法var Ajv = require('ajv');var ajv = new Ajv({$data:true});//添加所有的关键字require('ajv-keywords')(ajv);//只添加instanceof关键字require('ajv-keywords')(ajv, 'instanceof');//添加多个关键字requi.原创 2020-05-12 11:25:24 · 1579 阅读 · 0 评论 -
使用ajv校验json schema
使用ajv-errors生成json-schema错误信息ajv-errors给Json-schema添加了一个errorMessage关键字,通过这个关键字来输出错误信息const Ajv = require('ajv')const ajv = new Ajv({ allErrors: true, jsonPointers: true })require('ajv-errors')(ajv)//一个json schema规范的对象const schema = {}//待校验的json对象c原创 2020-05-12 11:24:35 · 2600 阅读 · 0 评论 -
json schema文档
类型typeNumber/string/boolean/object/array/null字符串、字符串数组形式stringminLength 非负数maxLength 非负数pattern 正则‘format常用格式日期邮件主机名ipuri正则表达式…number/integer(整数)multipleOf 倍数X ≥minimumx >exclusiveMinimumX ≤maximumx <exclusiveMaximu原创 2020-05-11 18:00:13 · 948 阅读 · 0 评论 -
MutationObserver
MutationObserverMutationObserver接口提供了监视对DOM树所做更改的能力。它被设计为旧的Mutation Events功能的替代品,该功能是DOM3 Events规范的一部分。简单来讲就是使用Mutationboserver可以监听dom节点的属性变化,节点的删除增加等一系列变化那MutationObserver有啥用呐?页面水印的制作防止水印被用户...原创 2019-08-12 22:38:40 · 1648 阅读 · 0 评论 -
原生JS forEach()和map()遍历的区别
原生JS forEach()和map()遍历共同点: 1.都是循环遍历数组中的每一项。 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。 3.匿名函数中的this都是指Window。 4.只能遍历数组。forEach()不可中途跳出循环或者return...原创 2019-08-05 23:00:13 · 182 阅读 · 0 评论 -
encodeURI和encodeURIComponent
encodeURI编码encodeURI 会替换所有的字符,但不包括以下字符类型包含保留字符; , / ? : @ & = + $非转义的字符字母 数字 - _ . ! ~ * ' ( )数字符号#解码decodeURIencodeURIComponent编码encodeURIComponent 转义除了字母、数字、(、)、.、!、~、*...原创 2019-08-05 21:59:22 · 694 阅读 · 0 评论 -
post数据加号和&号变空格
产品发公告时突然发现 广告+商品 的+号不见了,但是编辑器里面是有的。打开控制台看到network的查询公告接口的 view source是有加号的,排除接口调用前对+号做了replace。查询发现,url转码会对+号以及&号进行空格替换。解决办法:使用encodeURIComponent对数据进行编码直接使用转义字符%2B、%26分别替代+和&...原创 2019-07-09 16:34:47 · 3702 阅读 · 0 评论 -
Onject.keys获取对象的属性是无序的
Object.keys返回对象的属性数组是无序的。MDN定义如下:Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致而for….in以任意序迭代一个对象的属性。ECMA-262(ECMAScript)第三版中描述,for-in 语句的属性遍历的顺序是由对象定义时属性的书写顺序...原创 2019-06-20 10:59:02 · 1145 阅读 · 0 评论 -
passive event listener
前段时间在做图片随着滚轮缩放时,遇到一个问题。监听元素的滚滚动,同时还滚动了页面。后来准备使用preventDefault阻止浏览器默认行为。却报了Unable to preventDefault inside passive event listener due to target being treated as passive错误。查找资料发现对addEventListener还是不够了解...原创 2019-06-14 15:30:05 · 523 阅读 · 0 评论 -
执行字符串和模板解析 Eval、new Function()、setTimeout、setInterval
执行字符串和模板解析 Eval、new Function()、setTimeout、setInterval模板解析和执行字符串有以下几种方法eval、new Function()、setTimeout、setInterval。这些方法在不考虑使用场景时,主要区别在运行环境的判断上。作用域eval中的代码执行时的作用域为当前作用域。它可以访问到函数中的局部变量。var s = 'global...原创 2019-06-12 23:54:33 · 538 阅读 · 0 评论 -
位运算实现rgb和16进制的转换
16进制颜色值转RGB:// hex = #FFFFFF(hex) =&gt; { hex = hex.replace('#','0x') return `rgb(${hex &gt;&gt; 16},${hex &gt;&gt; 8 &amp; 0xff},${hex &amp; 0xff})`}RGB转16进制颜色值:// 255,255,255(r,g,原创 2019-01-11 21:46:49 · 1055 阅读 · 0 评论 -
canvas获取图片颜色主色调
获取canvas,img元素使用canvas的getImageData方法获取像素数据canvas的getImageData方法getImageData() 方法返回 ImageData 对象,该对象拷贝了画布指定矩形的像素数据。对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:R - 红色 (0-255)G - 绿色 (0-255)...原创 2019-01-11 20:19:47 · 4172 阅读 · 5 评论