ES6
文章平均质量分 52
天外野草
现任职移动研发部Team Leader, 高级咨询顾问、开发架构师,移动开发布道师, CSDN专家博主,CSDN讲师, 主修数学专业,曾获全国大学生数学建模大赛、东北三省大学生数据建模大赛一等奖,精通移动开发,熟悉 Angular、React、SAP FIORI等各种HTML5主流框架,对大数据开发,AI技术领域有一定的经验心得,同时拥有丰富的课程录制以及授课经验,也拥有多个大型企业级跨平台项目开发经验,乐观向上,乐于求知,不限领域!
展开
-
ES6 之 const 的说明
最近,很多人问我,const的用法问题,这里给大家澄清一个误区。常量索引,不是值在ES6中另外一个定义变量的关键字是 const , 但是它经常被误会为一个“常量”。在ES6中, const 代表一个值的 常量索引 (事实上绝大多数语言都提供这样的功能)。换句话说,变量名字在内存中的指针不能够改变,但是指向这个变量的值 可能 改变。这里有一个简单的例子。在下面的例子中我们可以创建一个拥有常量索引的数原创 2016-06-26 09:08:53 · 7095 阅读 · 0 评论 -
JavaScript作用域提升问题分析
如果经常编写Java, C++的工程师一定知道作用域的问题,同时,作用域也是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。var authorName="山边小溪";原创 2016-07-13 13:47:07 · 594 阅读 · 0 评论 -
AngularJS1.x学习(directive 中‘& ’‘=’ ‘@’符号的区别使用)
对于HTML5的兴起,Angular火热绝对值得称赞,外加庞大的社区做支持,是的Angular的普及度越来越高,称为最为流行的html5框架。对于一个html5框架的好坏,我们有几个评判标准, 轻量级,可拓展,易复用,速度快。对组件复用这点,angular以directive的形式展示给开发者,是一个还算不错的选择,作为一个UI组件,必定存在数据交互。那么数据交互过程中的几个符号我们一定要有所了解,原创 2016-07-13 14:12:43 · 7341 阅读 · 0 评论 -
NodeJS学习系列课程笔记(NodeJs Buffer 的相关使用方法)
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库, 所以不需要用require引入, Buffer 库为 Node.js 带来了一种存储原始数据的方原创 2016-07-14 11:29:13 · 2439 阅读 · 0 评论 -
NodeJS学习系列课程笔记(NodeJs Stream 的相关使用方法)
流的操作,在很多语言中存在,比如Java中的Inputsteam , outputStream 等等,在nodejs中, Stream也 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。对于Stream流有一下四中类型:Readable - 可读操作。Writable - 可写操作。原创 2016-07-14 14:03:28 · 2058 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 对象的最新用法)
由于面向对象编程风格的普及,我们对对象已经有一定的认识了,对于ES6这样一个新的标准,又有那些新的特性,值得我们追捧呢?对象的属性和方法ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁:const name = 'Richard';let person = {name};console.log(person); // {name: 'Richard'}同样我们也可定义个fu原创 2016-07-03 18:29:48 · 8240 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 Symbol语法的使用)
ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是ES6引入Symbol的原因。ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数原创 2016-07-03 19:02:56 · 1835 阅读 · 0 评论 -
NodeJS学习系列课程笔记(NodeJs zlib库文件解压缩的相关使用方法)
文件的压缩和解压,是一个很常见的功能,最近做项目用到这个功能点,于是拿出来分享一下。简单起见,我们看一下代码操作:文件压缩/** * Created by Richard on 7/14/16. */const fs = require('fs');const zlib = require('zlib');fs.createReadStream('my.txt').pipe(zlib.cre原创 2016-07-14 14:37:27 · 8612 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 Set和Map数据结构)
学过Java的同学,一定用过List和Map的数据结构,不过JavaScript在最新版本中,也提供了Set和Map的数据结构,的确是广大开发者的福音。ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。SetSet本身是一个构造函数,用来生成Set数据结构。var s = new Set();[2, 3, 5, 4, 5, 2, 2].map(x => s.add(原创 2016-07-03 21:17:50 · 3146 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 Generator 函数的使用)
在学习ES6的过程中,个人认为Generator稍微会有些难以理解,其实Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。我们从表面上看,Generator函数是一个普通函数,但是有两个特征: 1. function关键字与函数名之间有一个星号; 2. 函数体内部使用yield语句,定义不同的内部状态(yield语句在英语里的意思就是“产出”)。这里推荐给大家原创 2016-07-04 16:17:16 · 3257 阅读 · 0 评论 -
JavaScript原型链的理解和分析
JavaScript的学习是一个循序渐进的过程,学习过程中我们会不断探索其中的奥秘,其实我从最开始学习,一直对原型链的概念缺乏一个明确的认识,虽然有的时候还是在不断使用的。简单理解,在JavaScript中,一共有两种类型的值,原始值和对象值.每个对象都有一个内部属性[[prototype]],我们通常称之为原型.原型的值可以是一个对象,也可以是null.如果它的值是一个对象,则这个对象也一定有自己原创 2016-07-13 12:06:32 · 768 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6简介)
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。ECMAScript 6(以下简称ES6)是JavaScri原创 2016-07-01 09:26:55 · 1075 阅读 · 0 评论 -
ECMAScript 6 学习系列课程笔记
ES6普及已有一年的时间了,我们也有必要去了解和使用一些语法糖,这毕竟是未来的趋势,本人在学习过程中,为方便记忆,所以记录了学习过程中的点滴,帮助自己的同时,也希望给他人的学习带来一些指引。下面是主要的目录笔记:ECMAScript 6 学习系列课程 (ES6简介)ES6 之 const 的说明ECMAScript 6 学习系列课程 (ES6 对象的最新用法)ECMAScript 6 学习系原创 2016-07-12 15:36:52 · 858 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 Promise对象的使用)
Promise是异步编程的一种解决方案, ES6 这一特性很大程度上提高了开发者的效率,如果用过Angular的同学,一定会用到$q的resolve和reject函数,同理promise也提供原生的解决方案,不需要任何框架支持。我们下面看一下代码:function msgAfterTimeout (msg, who, timeout) { return new Promise((resolv原创 2016-07-12 11:02:43 · 2713 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 Internationalization & Localization的介绍)
对于ES6新增了很多对于国际化的支持,比如时间格式,货币格式,数字格式等等,那么对于这些特性,该如何使用呢,我们实际中看一下具体代码实例。再次说明一下,个人更喜欢代码实践,不喜欢空谈,因为这样更容易记住和理解。时间格式化操作:var l10nEN = new Intl.DateTimeFormat("en-US")var l10nDE = new Intl.DateTimeFormat("de-D原创 2016-07-12 11:14:03 · 813 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 gulp+babel 语法转化的相关用法)
目前来讲ES6语法的支持程度还不够完美,很多特性都没有支持到,但是ES6的语法糖的确很诱人,对于开发者来讲,我们有很想尝试使用,所以我们通常会讲ES6语法转换为ES5语法到产品环境使用,这个过程中会用到转换库,现在最好,最稳定的当属babel家族了。在真正项目中,我们会使用gulp进行项目架构,那么使用gulp和babel改如何实现对ES6语法的转化呢?首先确认一下我当前mac环境的相关配置:Nod原创 2016-07-12 11:38:43 · 2682 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 proxy和Reflect的相关用法)
使用Javascript ES6的Proxy实现元编程, 如果你熟悉Java,这非常类似Java中的动态代理模式,在ES6中Proxy, Reflect实现了代理和反射机制,这样说大家可能比较生涩,我们还是看一下具体代码:let target = { foo: "Welcome, foo"}let proxy = new Proxy(target, { get (receiver原创 2016-07-12 12:09:50 · 2518 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 常用内置方法的使用)
在编写Javascript的过程,我们经常会用到数组过滤,字符串等相关操作,比如会用到filter等方法,在ES6中同样新增了很多内置方法,下面我们来了解一下。Finding [ 1, 3, 4, 2 ].find(x => x > 3) // 4ES5实现实例:[ 1, 3, 4, 2 ].filter(function (x) { return x > 3; })[0]; // 4String原创 2016-07-12 13:57:45 · 5949 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 Modules的使用)
从编程思想上来讲,基于模块化的开发已经越来越普及了,ES6对于模块化的支持,更是一个不错的语法糖,下面我们来看一下具体的使用方法:ES6支持导入,导出(export, import) 从相关全局模块。如下:// lib/math.jsexport function sum (x, y) { return x + y }export var pi = 3.141593// someApp.js原创 2016-07-12 14:24:58 · 1282 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 箭头函数的使用)
在ES6语法中,简化了对函数的书写,其实,最初并不适应这样的写法,感觉很奇怪,但是永久了,发现这种方式更加直观,如果有了解swift语法的一定对箭头函数不陌生。下面我们来看一下这个箭头函数在ES6中是如何应用的:odds = evens.map(v => v + 1)pairs = evens.map(v => ({ even: v, odd: v + 1 }))nums = evens.m原创 2016-07-12 14:46:09 · 7653 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 默认值和解构赋值的使用)
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。对于ES5标准,我们定义一个变量,需要这样写var a = 1;var b = 2;var c = 3;如果用ES6标准,可以写成这样:var [a, b, c] = [1, 2, 3]对于深层次的解构,一样可以解构赋值, 例如下面的实例:let [foo, [[bar], baz]] =原创 2016-07-12 14:59:15 · 3347 阅读 · 0 评论 -
ECMAScript 6 学习系列课程 (ES6 class的相关用法)
面向对象的变成思想,是现在最流行的一种思想,java C++ c# php, 等等都是面向对象的语言,提到面向对象,我们肯定要提到类的概念,因为有类才有对象, 那么如果定义一个类,就至关重要了。ES6不得不说已经向大语言靠拢了, 在ES6中我们居然看到了Class的语法,是不是很牛,而且还可以定义构造方法,实例化一个类,我们也可以像java一样 new 一个class。 不仅如此,我们还可以实现继承原创 2016-07-12 15:17:38 · 852 阅读 · 0 评论 -
Babel在ES6项目架构中的搭建与应用方案解析
前言自从ES2015发布以来,所有的项目都转到了这一个标准,但是考虑到兼容性的问题,不得不对现有代码做一个转换,也就是说将ES6规范的代码转换到ES5的标准,保证项目不存在任何问题的情况下运行,有人会问,这不是多此一举吗,但是我想说ES6给开发带来的语法糖非常之多,足以吸引多数的技术决策者去尝试,此规范也大大提高了项目的可维护性和规范性,个人非常推崇,并且在项目中的应用稳定性也很高,如果你还没原创 2016-09-26 10:02:10 · 3710 阅读 · 1 评论