ECMAScript6
文章平均质量分 77
1
Justin0223
I will be okay
展开
-
获取localStorage的使用容量和最大容量
(一)前言我们最近需要涉及一套前端缓存库, 主要对一些列表数据进行本地缓存, 避免二次进入页面空白时间太长,这里内嵌webview,持久缓存就需要使用localStorage。这里主要讲述怎么计算当前使用体积和剩余体积(二)最大容量<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>容量</title></head>&l原创 2020-11-23 21:02:36 · 3455 阅读 · 0 评论 -
QuotaExceededError The quota has been exceeded
(一)前言我首先描述下,这种报错出现的场景ios <= 10 真机 Safari 的无痕浏览模式使用localStorage or sessionStorage 的 setItem当然,问题肯定社区有解决方案,以下链接可以满足你想要的答案问题链接1问题链接2问题链接3(二)解决过程如果你看完,那么问题可以总结为,两个方向是我们h5站点增加检测是否支持,并提示用户切换模式我们在不支持情况,默认切到cookie当然因为cookie本身储存空间不大,所以建议如果本地存储大量数原创 2020-08-28 17:33:08 · 4054 阅读 · 0 评论 -
canvas测量文字的真实宽度
(一)前言需求是这样,我们要求antd的table内部的文字都不换行,然后要兼容小屏幕,那么就需要设置scroll值,但是设置值后,会出现偏移,那时候需要设置列columns的宽度,但是之前行可以换行,放不下,会自动换行,现在只有一行展示,在不确定返回的宽度时候,我们就需要实现计算当前行的宽度,自动为他设置上(二)实现具体实现,包含计算纯文本的宽度,设置render的宽度,和手动设置宽度,计算scroll的x的宽度,等一系列计算。这里我只介绍如果计算纯文本中计算出当前的宽度这里我们使用 contex原创 2020-07-23 22:43:52 · 2276 阅读 · 0 评论 -
H5常规踩坑总结
(一)前言在h5做兼容情况下,我们会遇到很多问题,但是不去总结话,下次遇到相同问题,又会去查询资料,所以这里是平时与遇到h5,踩坑总结的地方(二)主体scrollToscrollTo兼容性替代方案scrollTo支持Safarismoothscroll其他方案animationanimation-delay 负值以及 delay 正值在 iOS 上的坑inputt...原创 2020-03-30 20:23:22 · 384 阅读 · 0 评论 -
js对象遍历
// 大家都会的 for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)const obj = { a: 'ss', b: 'bb', c: 'cc',}for (let key in...原创 2018-06-04 21:43:26 · 13248 阅读 · 0 评论 -
基于Fetch封装Requst工具类
安装依赖$ yarn add isomorphic-fetch新建utils/Requst.js 文件import fetch from 'isomorphic-fetch'// this is base_url, you can set webpack/***new webpack.DefinePlugin({ 'process.env': { ...原创 2018-04-09 19:36:53 · 700 阅读 · 0 评论 -
ES6 数组内对象去重
去重Setconst arr = ['张三','张三','三张三']let set = new Set(arr); // set 自带去重// Set { '张三', '三张三' }console.log(set);console.error(Array.from(set)); // [ '张三', '三张三' ]去重reducelet hash = {};let...翻译 2018-03-21 20:54:26 · 22913 阅读 · 2 评论 -
ES6(八: 对象扩展)
(一)属性的简洁表示法---ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。原创 2017-10-15 01:01:06 · 478 阅读 · 0 评论 -
ES6(七: 函数扩展)(name,箭头,函数绑定,尾调用优化)
前言对于js这种本身对面向对象(oo)支持不是特别好的,而且社区也在吐槽面向对象方式的各种弊端,反之,函数式编程正在大火,一方面是react热度,另一方面,这也是一种新的解决方案,可想而知,函数的地位举足轻重。原创 2017-10-06 00:34:25 · 500 阅读 · 0 评论 -
ES6(六: 函数扩展)(默认值,rest参数,扩展运算符)
前言想必在ES6没出现类语法之前,js中最重要的类型就是函数。无可非议,这就是一个大重点。原创 2017-10-04 21:51:10 · 3136 阅读 · 0 评论 -
ES6(五: Array扩展)
在Es6中正则新增了构造函数和修饰符。和修饰符对应的API而Number,则将全局的isFinite(),isNaN(),parseInt() 和parseFloat()放在Number的原型链上。并新增整数判断isInteger()和安全整数isSafeInteger()。并且扩展了Math上API的trunc(),sign(),cbrt(),clz32()等。原创 2017-10-03 15:43:23 · 465 阅读 · 0 评论 -
ES6(十: import 模块加载)
ES6模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS和AMD(现在基本快被放弃的加载方式)模块,都只能在运行时确定这些东西。比如, CommonJS模块就是对象,输入时必须查找对象属性原创 2017-09-26 21:15:37 · 4175 阅读 · 0 评论 -
ES6(四: 字符串新增API)
这么说吧,其实在java jdk1.6 就已经出现了startsWith和endsWith。而且分别常用与判断字符串开始和文件后缀。至于includes我知识点暂时不知道,不知道是不是js独有的,但是觉得所有api都肯定有其他出处,就好像一个好的模式、好的特性最后都会出现在所有平台一样。redux是这样,Lamda表达式也是这样。原创 2017-09-25 23:14:49 · 563 阅读 · 0 评论 -
ES6(三: 变量的解构赋值)
(一)数组的解构赋值在ES6之前对变量的赋值为:var a = 1, b = 2, c = 3;ES6 允许我们这样写const [a, b, c] = [1, 2, 3];// babel编译就是上面的方式上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被原创 2017-09-24 17:43:38 · 416 阅读 · 0 评论 -
ES6(二: 变量作用域)
let命令首先来看一个例子if(true){ var a =3;}console.log(a); // 3if(true){ let b =3;}console.log(b); // ReferenceError: b is not defined这是babel编译结果if (true) { var a = 3;}console.lo原创 2017-09-24 13:36:32 · 889 阅读 · 0 评论 -
ES6(一: babel环境)
不管现在是ES7 还是ES6 ,最终肯定要转成Es5在浏览器跑,说穿了还不是兼容性问题。所以,安装babel是为了能看下编译的结果。原创 2017-09-22 00:11:34 · 359 阅读 · 0 评论 -
Promise -- 承诺
1. 链式使用 Promise现在已经准备好深入 Promise 特性了。首先探索一下如何链式使用 Promsie 。方法调用的结果:P.then(onFulfilled, onRejected)是一个新的 Promise Q 。这意味着你可以通过在 Q 上调用 then() 来维持基于 Promise 的控制流:• 如果 onFulfilled 或 onRejected 成功返回,则原创 2017-08-06 18:29:52 · 632 阅读 · 0 评论