美文网首页
ECMA2015(es6)

ECMA2015(es6)

作者: Raalstalblack | 来源:发表于2017-04-19 15:37 被阅读0次

今天说说ECMAScript6吧,其实es6不是什么的框架之类的,它就是在原生js,把原生js修修改改,然后在原来的基础上添加一些新的语法,而这些语法就是从java等语言上参照的。
今天就说一些常用的语法吧。

首先就是定义变量了:

let和const
1.let定义方式和var定义一样

 let a=1;  //和正常的定义一样,不允许重复定义,在并不存在坑人的预解析

2.let块级作用于

例如: 
         function test(){
               let a=1;        
          } 
       console.log(a)    //报错a is not defined,其实a是在函数里面定义的,也就是说函数test形成了一个块级作用域外面无法访问。
下面的例子大家会看的相当的清楚
 for(let i=0;i<5;i++){
           for(let i=1;i<7;i++){
             console.log(a)
         }
       console.log(b)
 }

const
其实大家了解Java的就会发现const和java里的final一样,也就是定义的变量后面不可以改变。

  例如:
    const a=10;
    a=1;
    const这样定义就会报错的
    const不存在预解析,只有暂时的死区

const也就这些了,其实也没什么了

二,结构赋值

let [a,b,c]=[1,2,3]
//a=1,b=2, c=3
这就是结构赋值,特别简单同时也是特别的好用
当然这只是简单的结构赋值,还有好多结构赋值例如:
1.数组的解构赋值

 let [a, b, c] = [1, 2, 3

2.对象的解构赋值

let [a,b]={a:"aaa",b:"bbb"} //a="aaa" b="bbb"

3.字符串的解构赋值

const [a, b, c, d, e] = 'hello';

4.函数参数的解构赋值

function add([x, y]){
  return x + y;
}
add([1, 2]); // 3

三.箭头函数

    // function show() {
       //    alert(123)
       //}
       //show();
上下两个函数是一样的
        let show=()=>{
            alert(123)
        }
       show()

当只有一个参数的时候=后面的()可以省略了

let show = a=>{
            alert(a);
        };
        show(20);

省略小括号的情况

 /*let show = (a)=>{
           alert(a);
       }*/
上下形成鲜明的对比,我就不一一解释了(一个参数)
       let show = a=>{
           alert(a);
       }
       show(20);

省略大括号的情况

 /*let show = a=>{
           return a+10;
       }*/

       let show = a=>a+10;

       alert(show(4));

注:箭头函数自带返回值

四.各种扩展
es6对正则,数组,数值,对象等都作出了,扩展我就不多做解释了

五Set和Map
set其实和数组差不多,唯一区别就是set没有重复的

const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
for (let i of s) {
 console.log(i);
}
// 2 3 5 4  赋值这段代码就会发现其奥妙

Map插入的时候可以插入键值对

 let map = new Map();
        map.set('title','123456');
        map.set('content','7897987');

        for(var item of map ){
            alert(item[0]); //title content
            alert(item[1]); //123456 7897897
        }

六.Promise 对象
promise:是一种异步编程的解决方案。有两个大的特点:
(1).对象的状态不受外界影响,有三种状态Pending(进行),Resolved(完成),Rejected(失败);
(2).一旦状态改变,就不会再变,任何时候都可以得到这个结果.它的状态改变只有两种可能,从Pending变为Resolved和从Pending变为Rejected。

Promise新建后就会立即执行

let promise = new Promise(function(resolve, reject) {
  console.log('1');
  resolve();
});
promise.then(function() {
  console.log('2.');
});
console.log('3');
结果:1   3   2大家可以在编辑器上试试

promise还有好多呢,我就不一一解释了。

es6还有好多有用的东西,比如for of 循环,Generator函数,Generator里的yeild和next,async函数(**es7将会大量的使用),还有面向对象的class,不像原生js里的prototype那样了,而是用class,还有module(模块),等这些都是特别有用的东西,我就不一一解释了,以后有时间可能会的。

相关文章

  • ES6--let声明变量,const声明常量

    ECMA2015(也称es6),在原先javascript语法基础上新增语法特征,浏览器对es6的语法支持还不够,...

  • ECMA2015(es6)

    今天说说ECMAScript6吧,其实es6不是什么的框架之类的,它就是在原生js,把原生js修修改改,然后在原来...

  • ES6 - ECMA2015 - 学习总结

    新的概念与方法 概略图: 兼容性:主流浏览器,nodejs,IE10+ 基本使用 变量 相较于一直在使用的var变...

  • ES6语法

    Tags: ES6 [TOC] ES6 常量 //ES6 const PI=3.1415926;//const声明...

  • es6新特性

    es6新特性 1.函数参数添加默认值 es6之前 es6之后: 2.字符串拼接 es6之前: es6之后: 3.解...

  • 函数默认参数

    非ES6写法 ES6写法

  • ES6基础

    ES6特性 ES6更具备强大的生产力 ES6对象拷贝

  • ES6箭头函数简介

    @(JS技巧)[ES6|箭头函数] ES6箭头函数(Arrow Functions) ES6可以使用“箭头”(=>...

  • React与ES6(一)开篇介绍

    React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的prope...

  • React与ES6(三)ES6类和方法绑定

    React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的prope...

网友评论

      本文标题: ECMA2015(es6)

      本文链接:https://www.haomeiwen.com/subject/kkmvattx.html