ES6标准
1.函数扩展
ES6标准感觉越来越向传统语言靠拢了,以后写到ES6的标准都记录下:
var array = [,,]; // =>操作符
array.forEach(v => console.log(v));
是不是简化了回调函数的写法。
=>可以简化函数的写法
var single = a => a; //single为函数;参数为a,函数体就只有a;
console.log(single('hello, world'));
如果没有参数;那么写法如下:
var log = () => {
alert('no param');
}
注意点:
1.1.typeof运行符和普通的function一样
var func = a =>a;
console.log(typeof func); //function
1.2.this固定,不在善变
var obj= {
data:['John Backus','John Hopcroft'],
init:function(){
document.onclick = ev => {
alert(this.data);
}
}
}
obj.init(); //John Backus,John Hopcroft
1.3.箭头函数不能用new
var Person = (name,age)=>{
this.name= name;
this.age = age;
}
var p =new Person('John',33);
//Uncaught TypeError: (name,age)=>{(…)
1.4.不能使用argument
var func = ()= >{
console.log(arguments);
} //出错
//重要的莫过于class关键字;它提供类的创建,是JS语言的OOP编程更像JAVA\C++等语言。测试了下,居然不支持
class Animal {
//ES6的新型构造器
constructor(name){
this.name =name
}
sayName(){
console.log('My name is' + this.name);
}
}
class Programmer extends Animal {
constructor(name){
super(name);
}
program(){
console.log("I'm coding");
}
}
var animal = new Animal('dummy'),
wayou = new Programmer('wayou');
animal.sayName();
wayou.sayName();
wayou.program();
2.Object扩展
Object.is // 等价于"===";
Object.assgin(targetObj,sourceObj1,souceObj2......);
var x = Object.assign({}, undefined, {
sourceMap: 'xy'
});
console.log(x);
// {sourceMap: "xy"}
参考博客:http://blog.csdn.net/qq_30100043/article/details/53422657
方法name的属性
console.log((new Function()).name) //anonymous
var doSomething = function(){ }
console.log(doSomething.bind().name); //bound
3.模块扩展
import用法,看下列代码:
import Game from "./components/Game"
import Start from "./components/Start"
import Over from "./components/Over"
import AgainFail from "./components/AgainFail"
import CommitPhone from "./components/CommitPhone"
4.HTML5之FileReader的使用
转:http://blog.csdn.net/yaoyuan_difang/article/details/38582697
5.剩余操作符(rest operator) ...
var obj1 ={
'x': 'x1',
'y': 'y1'
};
var obj2 = {
...obj1,
'z': 'z1'
};
console.log('obj1=', obj1);
console.log('obj2=', obj2);
obj1.x = 'x3';
// 深拷贝 obj2不受到obj1变化的影响。
console.log('obj1=', obj1);
console.log('obj2=', obj2);
obj2 = {
...obj1,
'y': 'y2'
};
// 重复的y成员被替换
console.log('obj1=', obj1);
console.log('obj2=', obj2);
obj2 = {
y: 'y3',
...obj1
};
//安装顺序替换
console.log('obj2=', obj2);
// obj1= { x: 'x1', y: 'y1' }
// obj2= { x: 'x1', y: 'y1', z: 'z1' }
// obj1= { x: 'x3', y: 'y1' }
// obj2= { x: 'x1', y: 'y1', z: 'z1' }
// obj1= { x: 'x3', y: 'y1' }
// obj2= { x: 'x3', y: 'y2' }
// obj2= { y: 'y1', x: 'x3' }
6.import和require的区别
1.require可以在代码的任何地方,而import只能用到文件的头部
2.require赋值功能,import是编译功能,所有import的性能要优于require。
3.当import遇到了default,于require是是完全不同的两种概念。
4.建议require使路径用绝对路径,import使用相对路径。
ES6标准的更多相关文章
- ES6标准入门之变量的解构赋值简单解说
首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...
- ES6标准简介之Babel转码器解说
ES6是ECMAScript 6的简称,是JavaScript语言的下一代标准,现在基于jquery库的前端开发js所使用的标准是ES5(ECMAScript 5).ES6已于2015年6月正式发布. ...
- ES6标准中的import和export
在ES6前, 前端使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具 ...
- 【学习笔记】ES6标准入门
这里简要记录一下对自己感触比较深的几个知识点,将核心的应用投放于实际的项目之中,提供代码的可维护性. 一.let和const { // let声明的变量只在let命令所在的代码块内有效 let a = ...
- ES6标准入门 第一章:简介
ECMAScript 6 是JavaScript 语言的下一代标准:发布于2015年,又称为ECMAScript 2015. ECMAScript 与 JavaScript 的关系:前者是后者的规范, ...
- 《ES6标准入门》(阮一峰)--11.对象的新增方法
1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...
- 《ES6标准入门》(阮一峰)--8.函数的扩展
1.函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log ...
- 《ES6标准入门》(阮一峰)--7.数值的扩展
1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...
- ES6标准入门 2/26
第一章 ECMAScript6 简介 1.首先经典开头,ECMAScript跟JavaScript的关系,前者是后者的规格,后者是前者的一种实现.在日常场合中,这两个词是可以互换的. 2.ES6可以泛 ...
随机推荐
- jsp内置对象作业1-用户登录
题目:编写一个jsp程序,实现用户登录,当用户输入的用户名或密码错误时,将页面重定向到错误提示也,并在该页面显示30秒后,自动返回到用户登录页面. 1.用户登录页面 <%@ page langu ...
- bzoj4381: [POI2015]Odwiedziny
这题搞了我一下午……因为一些傻X的问题…… 对于步长大于sqrt(n)的询问,我们可以直接暴力求解 然后,我们可以事先预处理出d[u][step]表示u往上跳,每次跳step步,直到跳到不能跳为止,所 ...
- bzoj4403: 序列统计
我们很容易发现答案是C(R-L+N+1,N)-1 然后用一下lucas定理就行了 #include <iostream> #include <cstdio> #include ...
- VS调试网页的localhost
那个像是iis的服务器叫: 只能访问自己的localhost,也就是127.0.0.1是回环地址(LoopBack),就是表示访问本机,是不用经过网卡的. 别名就是localhost.这种地址无法再外 ...
- Jenkins邮件配置,实现邮件发送策略(可实现每个Job对应不同的发送邮箱)
前言: 首先,要有一个用来发送的邮箱,首选网易!参考:http://www.cnblogs.com/EasonJim/p/6051636.html,这里我注册了网易的免费企业邮箱. 并且我新建没多个邮 ...
- poj2284 欧拉公式
题意:给出一图形,求该图形把平面分成了几部分 欧拉公式: http://blog.csdn.net/wangxiaojun911/article/details/4586550 对于二维平面上的情况. ...
- Unity赛车游戏之移动
这个赛车游戏真是让我费劲脑汁啊.尤其是写这种系统化的东西. 目前漂移还没找到更好的算法,不过基本的移动还是可以做到的. 别看就光是个移动,其实也是很费事的. Unity给了个对于赛车系统很好的碰撞组件 ...
- .net数据库操作
刚接触到数据库时总是被数据库中的一些基本概念,比如Connection.Command.DataReader等,给整的糊里糊涂.如今,对数据库的基本操作有了一定的认识,特此做出总结,以便后续工作中查阅 ...
- 强连通分量的Tarjan算法
资料参考 Tarjan算法寻找有向图的强连通分量 基于强联通的tarjan算法详解 有向图强连通分量的Tarjan算法 处理SCC(强连通分量问题)的Tarjan算法 强连通分量的三种算法分析 Tar ...
- django数据库时间存储格式问题
http://blog.csdn.net/ichuzhen/article/details/38555645 一般建议用datefield 关于从数据库读取出来格式问题可以看 http://stack ...