12 2017 档案
摘要:将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况;隐式的情况称为强制类型转换,JavaScript 中的强制类型转换总是返回标量基本类型值,如字符串、数字和布尔值。 如何理解: 类型转换发生在静态类型语言的编译阶段,而强制类型转换则发生在动态类型语言的运行时? 1、如果是静态语言,比如
阅读全文
摘要:一、ES6 Promise是什么? 复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么呢?是一个类?对象?数组?函数? 别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴。 这么一看就明白了,Promis
阅读全文
摘要:一张图片不仅仅就是我们看到的图形,他还可以包含一些其他重要的信息,例如拍摄时间、拍摄的地点等,也有些牛人直接将重要的信息隐藏在图片里面,真是玩出了花。 Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置
阅读全文
摘要:一、git tag 操作 在Git中,标签(tag)是一个特别的分支,指向某个提交(commit),它通常用于发布版本。 Git 的标签分为两种类型:轻量标签和附注标签。 1、轻量标签(lightweight tag)仅仅是一个指向特定提交的引用,它不会存储任何额外的信息。创建轻量标签的命令如下:g
阅读全文
摘要:引入这些包用于设置样式的 新写的导出方法
阅读全文
摘要:项目中做导入的时候遇到个bug,用JSON.stringify()序列号json对象传给后台;然后后台通过getPatameter()获取值时,前台的英文引号变成了中文引号。 原来代码如下:(自己排查发现就算是英文的时候也是如此) 在后台获取时,前台的英文引号,在后台变成了中文引号,导致JSON解析
阅读全文
摘要:一、概述 async 函数是 Generator 函数的语法糖 使用Generator 函数,依次读取两个文件代码如下 写成async函数,就是下面这样 async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await,仅此而已 async函数对 Genera
阅读全文
摘要:一、内建迭代器 迭代器是ES6的一个重要组成部分,在ES6中,已经默认为许多内建类型提供了内建迭代器,只有当这些内建迭代器无法实现目标时才需要自己创建。通常来说当定义自己的对象和类时才会遇到这种情况,否则,完全可以依靠内建的迭代器完成工作,而最常使用的可能是集合的那些迭代器 1、集合对象迭代器 在E
阅读全文
摘要:用循环语句迭代数据时,必须要初始化一个变量来记录每一次迭代在数据集合中的位置,而在许多编程语言中,已经开始通过程序化的方式用迭代器对象返回迭代过程中集合的每一个元素 迭代器的使用可以极大地简化数据操作,于是ES6也向JS中添加了这个迭代器特性。新的数组方法和新的集合类型(如Set集合与Map集合)都
阅读全文
摘要:JS用"共享一切"的方法加载代码,这是该语言中最易出错且容易令人感到困惑的地方。在ES6以前,在应用程序的每一个JS中定义的一切都共享一个全局作用域。随着web应用程序变得更加复杂,JS代码的使用量也开始增长,这一做法会引起问题,如命名冲突和安全问题。ES6的一个目标是解决作用域问题,也为了使JS应
阅读全文
摘要:修饰器(Decorator)是一个函数,用来修改类的行为。 一、概述 ES6 引入了这项功能,目前 Babel 转码器已经支持Decorator 首先,安装babel-core和babel-plugin-transform-decorators。由于后者包括在babel-preset-stage-0
阅读全文
摘要:继承与派生类 在ES6之前,实现继承与自定义类型是一个不小的工作。严格意义上的继承需要多个步骤实现 Square继承自Rectangle,为了这样做,必须用一个创建自Rectangle.prototype的新对象重写Square.prototype并调用Rectangle.call()方法。JS新手
阅读全文
摘要:大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5。由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性。 一、ES5近似结构 在ES5中没有类的概念,最相近的思路是创建一个自定义类型:首先
阅读全文
摘要:我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新特性:解构。解构是一种打破数据结构,将其拆分为更小部分的过程。 一、引入背景 在ES5中,开发者们为了从对象和数组中获取特定数据并赋值给变量,编写了许多看起来同质化的代码 这段代码从options对象
阅读全文
摘要:导出Excel功能分sheet页处理数据: 导出效果如下:
阅读全文
摘要:过去,javascript缺乏块级作用域,var声明时的声明提升、属性变量等行为让人困惑。ES6的新语法可以帮助我们更好地控制作用域。 一、var声明 1、变量提升:var声明会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined 如果没有javascript开发经验,可能会认为只
阅读全文
摘要:Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构。ES6也添加了Map集合来解决类似的问题 一、Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制 为了解决这个问题,ES6提供了Map数据结构
阅读全文
摘要:一、引入背景 Set集合是一种无重复元素的列表,开发者们一般不会逐一读取数组中的元素,也不太可能逐一访问Set集合中的每个元素,通常的做法是检测给定的值在某个集合中是否存在 Map集合内含多组键值对,集合中每个元素分别存放着可访问的键名和它对应的值,Map集合经常被用于缓存频繁取用的数据。在标准正式
阅读全文