zoukankan      html  css  js  c++  java
  • 简单了解ES6的语法

    ES6的部分语法

    const
    const 用来定义一个不改变的常量,一旦用const定义,就不能更改,若强制更改会报错。
    const Pi = 3.14;
    
    let
    用let来定义一个块级作用域,只有在这个作用域内let声明的变量才存在,在这个作用域外部访问声明的变量会报错
    for(let i= 0 ; i<5 ;i++){
        console.log(i)
    }
    console.log(i)
    for循环会输出0 1 2 3 4   ;在for循环外的会报错  i is not defined
    
    箭头函数
    定义形式 :var test =  ()=> {  //处理程序 }
    传参数: var test = (a,b) => { // 处理程序 }
    
    var name="jack";
    var obj = {
        name:'rousi',
        test:function(){
            var test1 = ()=>{
                console.log(this.name)  //obj
            }
            test1()
        },
        test:function(){
            var test2 = function(){    
                console.log(this.name)  //window
            }
            test2();
        },
        test3:function(){
           console.log(this.name)  //obj
        },
    }
    obj.test3();
    
    与ES5函数的区别: 箭头函数中的this都是指向obj的,而ES5中的this得看调用者是谁才能指向谁。
    
    函数的默认值
    在ES6的语法中,我们可以给函数的形参设置默认值;
    function ab(a=1,b=2){
        return a+b;
    }
    ab()  //3
    ab(5,6) //11
    
    解构
    var data = {name: 'jack',age:18,sex:'男'}
    var {name,sex,age} = data
    alert( name ) // jack
    
    反引号 `
    在ES5中,一个变量是不能赋值为多行字符串的,因为js的换行符不仅有分号还有回车,如果要写多行字符串就要拼接。例如:
    var html = '<ul>'
    html += '<li>内容</li>'
    html += '</ul>'
    
    在ES6中,反引号可以处理多行字符串  
    
    var str = `aa
                    bb
    `;
    在``中间我们也可以使用变量,变量名要用${}包裹:例如
    var name="jack";
    var str = `aa
        bb${name}cc
    `
    console.log(str)
       可以输出 :
        aa
        bbjackcc
    
    Promise
    在ES6语法中,提供了Promise对象来实现JS中异步的处理,它可以把异步变为同步:看下面的实例
    new Promise(function(res){
        setTimeout(function(){
            console.log(1111);
            res()
        },2000)
    }).then(function(){
            console.log(222)
    })
    上面是Promise将异步变为同步的基础语法,参数 res是必须要执行的,不然会起不到作用。
    如果想将上一次的的返回值作为下一次的参数的话,就需要返回一个值,示例如下:
    new Promise(function(res){
        setTimeout(function(){
            console.log(1111);
            res()
        },2000)
    }).then(function(){
            console.log(222)
            return new Promise(function(res){
                    res('要传递的参数')
            })
    }).then(function(val){
        //这里的val就是接收的 return返回的 '要传递的参数'
    })
  • 相关阅读:
    Linux文件系统_每一个的意义
    Linux启动的流程
    Linux
    awk编程
    Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
    spring boot get和post请求,以及requestbody为json串时候的处理
    Spring Boot快速入门
    Spring Boot 实用MyBatis做数据库操作
    极简操作无需root隐藏S8导航栏和状态栏
    springboot(三):Spring boot中Redis的使用
  • 原文地址:https://www.cnblogs.com/rainbow8590/p/7240518.html
Copyright © 2011-2022 走看看