javascript随笔
大白的博客
这个作者很懒,什么都没留下…
展开
-
理解 JavaScript 的 async/await
阅读约 15 分钟随着Node 7的发布,越来越多的人开始研究据说是异步编程终级解决方案的 async/await。我第一次看到这组关键字并不是在 JavaScript 语言里,而是在 c# 5.0 的语法中。C# 的 async/await 需要在 .NET Framework 4.5 以上的版本中使用,因此我还很悲伤了一阵——为了要兼容 XP 系统,我们开发的软件不能使用高于 4.0 ...转载 2019-12-06 16:04:38 · 191 阅读 · 0 评论 -
JS 根据数组中对象的属性值(字母)进行排序
JavaScript 中如何对数组中对象的某个属性值进行排序呢,如何对字符串排序呢?array 本身有一个sort()方法,可以对数字类型直接排序,array 还有另外一个reverse()方法,可以将当前的排序倒过来例子:let arr1= [4,6,3,2,7,35,65];compareUp = (val1,val2) =>{ return val1-va...原创 2019-03-26 13:13:13 · 5812 阅读 · 9 评论 -
JavaScript 小于10自动补零
在工作中,遇到很多需要补零的情况,例如,等级 01 、02 、2018-06-06参数 ------ 参数需要是数字或者类数字的字符串返回值------ 是一个已经补零的数字原理--判断传来的值是否大于零,小于零则拼接上一个 0 即可addZero (num) { if (parseInt(num) < 10) { num = '0' + ...原创 2019-05-09 10:50:54 · 4018 阅读 · 0 评论 -
将 2018-05-19T08:04:52.000+0000 格式日期 转换成 yyyymmdd 格式
将"2018-05-19T08:04:52.000+0000"这种格式的时间转化为正常格式getYYYYMMDD (param)param : 将 2018-05-19T08:04:52.000+0000 格式的日期作为参数传递进去返回值return {nTime: nTime, // 格式为 YYYY-MM-DDnDateTime: nDateTime // ...原创 2019-05-09 11:17:10 · 4354 阅读 · 0 评论 -
vue 小知识点自记
Axios不支持JSONP,需要另外安装jsonp模块实现 如果需要动态生成路由,可以使用router.addRoutes(routes) 如果要区分新建页和编辑页,可以在路由对象中设置meta属性 在组件中访问路由信息对象:this.$route 在组件中访问路由实例:this.$router 可以在全局拦截路由,也可以在单个组件中拦截路由 如果是中等规模的项目,推荐使用vuex ...原创 2019-05-09 13:51:08 · 251 阅读 · 0 评论 -
Window Navigator window.navigator.language
window.navigator 对象包含有关访问者浏览器的信息。navigator.language返回一个字符串,该字符串代表用户的首先语言,通常是浏览器使用的语言。navigator.language为只读属性。例如:用一下方式可以获得其他对应信息,可用 window.navigator.attr 也可用navigator.attr, 因为window可省略浏览器...原创 2019-05-09 15:27:51 · 2031 阅读 · 0 评论 -
window.localStorage 增删改查
localStorage 经常被前端用来存储一些数据,对数据的处理一般就是增删改查,增加和修改window.localStorage.setItem('名称', '数据内容')为什么把增加和修改归为一类,因为对于localStorage 的修改也是通过再次 setItem 来进行的删除单个数据window.localStorage.removeItem('名称')删...原创 2019-05-28 20:59:54 · 3866 阅读 · 0 评论 -
localStorage 和 sessionStorage 的区别
localStorage 和 sessionStorage 的定义Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加、删除、修改、查询操作。localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。sessionStorage 用于临时保存同一窗口(或标签页...原创 2019-05-30 13:22:35 · 437 阅读 · 0 评论 -
sessionStorage 存储和获取对象
还记得第一次使用localStorage 存储了个数组,却一直显示为 [object,object]sessionStorage 也是同样的错误解决办法:存储对象window.sessionStorage.setItem('名称', JSON.stringify(对象数据))获取对象let content = JSON.parse(sessionStorage.get...原创 2019-05-30 13:26:43 · 7311 阅读 · 4 评论 -
sessionstorage 增删改查
sessionstorage 经常被前端用来存储一些数据,对数据的处理一般就是增删改查,增加和修改window.sessionStorage.setItem('名称', '数据内容')为什么把增加和修改归为一类,因为对于sessionStorage 的修改也是通过再次 setItem 来进行的删除单个数据window.sessionStorage.removeItem('...原创 2019-06-11 10:06:22 · 5850 阅读 · 0 评论 -
JavaScript Cookie
什么是 Cookie?Cookie 是一些数据, 存储于你电脑上的文本文件中。当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。Cookie 的作用就是用于解决 "如何记录客户端的用户信息":当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。创建 和 修改 Cook...原创 2019-06-11 10:06:11 · 437 阅读 · 0 评论 -
如何判断 JSON 格式
如何校验输入的内容是否为 JSON 格式isJson (data) { if (typeof data === 'string') { try { var obj = JSON.parse(data) if (typeof obj === 'object' && obj) { retu...原创 2019-07-08 12:54:20 · 3794 阅读 · 0 评论 -
canvas 如何 清空画布内容
解决办法:重新给canvas赋值高度或者宽度canvas.setAttribute('height', 240)原理:当 canvas 得宽高发生变化时,会重新绘制canvas,里边得内容就为空了原创 2019-07-04 20:07:20 · 9366 阅读 · 0 评论 -
Highcharts、Echarts、D3、该用哪个
收费角度 兼容性 难易程度 适用场景是否收费Echarts 完全免费,代码开源。 D3 完全免费,代码开源。 Highcharts 非商业免费,商业需授权,代码开源。兼容性Highcharts 兼容 IE6 及以上的所有主流浏览器,支持移动端缩放、手势操作。 Echarts 兼容 IE6 及以上的所有主流浏览器,支持移动端的缩放和手势操作。 D3 兼容IE9 及以上的所有...原创 2019-08-05 19:41:03 · 3485 阅读 · 0 评论 -
循环方法 forEach、map、filter
前后端交互或者数据展示的时候,如何选用正确的循环方法来提高效率呢?1 : For循环 适用于任何情况的循环,在for循环中中直接使用判断或者函数来进行数据筛选、重写数据结构等功能 如果你不能立马判断出用哪个循环,for是不二的选择let arr = [{ name : 'name1', age : 'age1', job : ...原创 2019-03-18 12:38:31 · 578 阅读 · 0 评论 -
IPV6 CIDR 校验 正则表达式
百度没有找到或者说没有一个好用的,这个是向朋友取经得来的,惠存/^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:...原创 2018-11-08 16:03:24 · 2574 阅读 · 0 评论 -
javascript 循环语句
javascript 有很多的循环语句,下边我来总结并用个人的语言分析一下For循环举例:ES5 中就支持例如在控制台输出0-99:1:for(var i=0;i<100;i++){ // var i=0; 循环语句中所需变量的初始化 // i<100; 循环条件,当变量不能满足这个条件时,停止循环 // i++ 循环条件,变量自增或自减...原创 2018-03-22 17:37:44 · 760 阅读 · 0 评论 -
javascript条件语句(流程语句)
最常见的条件语句if(){}else if(){}else{}原创 2018-03-21 15:45:39 · 602 阅读 · 0 评论 -
call 和 apply 的区别
call 和 apply的共通之处无疑就是改变 this 的指向。那么this到底是什么?this指向当前函数的调用对象。也可以理解为改变this指向其实是改变了this的执行环境 , 可是如果要改变this的指向,就可以通过call apply 和 bind 了。虽然目的相同都是 “改变this的指向”,可是传参方式却不同。一:call 参数传递是散列分布 Fun_A....原创 2018-03-09 11:25:25 · 186 阅读 · 0 评论 -
如何检测数组类型?
如何检测数组类型? Array.isArray(); 浏览器兼容性:IE9+ 判断一个东西是不是数组 [] instanceof Array // true instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上var arr=[];arr.constructor;//A...原创 2018-02-01 13:51:48 · 623 阅读 · 0 评论 -
javascript的typeof返回哪些数据类型
javascript的typeof返回哪些数据类型? typeof其实只返回六大“基本数据类型”:string(字符串)number(数字)object(对象=》数组(Array)、日期对象(Date)、正则(RegExp)、Math)function(函数)boolean(布尔)undefiined如何使用typeof检测数据类型? typeof 想要检测的内...原创 2018-01-31 20:57:08 · 976 阅读 · 0 评论 -
字符串转数字 数字转字符串
字符串转数字 parseInt(value)将括号里的字符串转换为整数 parseFloat(value) 将括号里的字符串转换为浮点数 Number(value) 强制转换为数字 数字转字符串 value.toString()将value转换为字符串...原创 2017-09-06 15:27:39 · 362 阅读 · 0 评论 -
跟随导航,导航定位,导航如何一直漂浮在上方
跟随导航 滚动导航 定位导航实现的效果是当滚动条滑到一定距离时,应该消失的导航出现,并一直固定在顶部,或者某一位置,可通过位置调整 下边是一个Demo,每行注释都非常清晰,可以全部复制到一个页面进行浏览,只需要加一个jquery.min.js原理在最下方<!DOCTYPE html><html lang="en"><head> &l...原创 2017-08-27 09:55:59 · 2232 阅读 · 0 评论 -
js 中找最大值最小值 最简单的两种方法
找最大值最小值 最简单的两种方法 1.直接使用 Math.min/max.apply(Math,Array)方法获取最小/大值Math.min.apply(Math,Array) 得到数组中的最小值;Math.max.apply(Math,Array) 得到数组中的最大值; 例子1:var data = [1,25,3,4.23]最大值: console.log(Math...原创 2017-08-25 16:46:48 · 25014 阅读 · 0 评论 -
jQuery.fileDownload 成功回调失败原因
jQuery.fileDownload 成功回调失败原因jQuery 的文件下载插件非常好用,突然发现失败后回调函数可以实现,成功后的回调函数总是失败,如何测试都不行 原因不在前端是在请求时后台有没有返回cookie值只有后台返回cookie值时成功回调函数才有用。...原创 2017-08-25 16:33:06 · 2607 阅读 · 0 评论 -
label语句
这个是知道label是怎么用的了。文章为转载var itemsId = [1,3];varall = [[{id:1,name:hehe},{id:3,name:hehe}],[{id:2,name:hehe},{id:4,name:hehe}]];//我们有上边两个数组,itemsId是id数组,all是一个二维数组,其中的元素是,按照id的奇偶进行区分放置的,项目的对象。现在我们希...转载 2018-01-12 12:31:22 · 658 阅读 · 0 评论 -
正则校验手机号,正则大全
1 . 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$2. 校验中文字符串仅能是中文。^[\\u4e00-\\u9fa5]{0,}$3. 由数字、26个英文字母或下划线组成的字符串^\\w+$4. 校验E-Mail 地址同密码一样...转载 2018-07-10 15:50:48 · 4732 阅读 · 0 评论 -
IPV 6 / IPV 4大小比较,判断IPV6/IPV4范围的开始和结束
IP 比较大小的目的是为了确认IP 范围的正确性,前提是必须是同一网段的原理:举个IPV 4 的例子:127.0.0.1 和 128.0.0.2 是不同的两个网段,不同网段下边的IP是无法对比大小的,因为互不通信,互不影响。只有在同一个网段的两个 IP 才能比较大小,那么简单的来说,在网段相同的情况下,只用判断最后一部分的大小关系即可IPV 6 是十进制的,以" . "隔开,切分为...原创 2018-11-09 11:00:19 · 6389 阅读 · 1 评论 -
js IPV 4 IPV6 校验 正则表达式
百度了很多正则表达式,很多都不准确,或者不全面,下边是实验很多个正则之后,选用的一个非常准确的正则IPV4 地址校验的正则表达式:/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/IPV6 地址校验的正则表达式:/^\...原创 2018-11-08 15:56:27 · 4979 阅读 · 3 评论 -
IPV 4 CIDR 校验 正则表达式
百度了很多正则表达式,很多都不准确,或者不全面,下边是实验很多个正则之后,选用的一个非常准确的正则IPV4 CIDR 校验的正则表达式:/^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2...原创 2018-11-08 15:58:39 · 4380 阅读 · 4 评论 -
外链javascript引用位置为何放body末尾
为何外部引入的script需要放在body的末尾?原因:浏览器是单线程的,如果放在头部,浏览器会先加载script文件并执行,此时会形成一个阻塞,影响后续的dom文件的加载和执行。缺点: 1:加载 script 时造成页面阻塞,影响页面的呈现速度,会造成非常差的用户体验, 2:当script文件中对dom节点进行操作时dom并未加载出来,此时就会出现代码报错,在加载完dom之后不会继续...原创 2018-03-20 11:36:53 · 1911 阅读 · 1 评论