联系客服
客服二维码

联系客服获取更多资料

微信号:LingLab1

客服电话:010-82185409

意见反馈
关注我们
关注公众号

关注公众号

linglab语言实验室

回到顶部
手把手教你Vue入门 - 05 ES6语法

474 阅读 2020-08-27 09:13:02 上传

以下文章来源于 西语语言学工作坊

    为了让大家分清哪些是JavaScript的ES6语法,哪些是Vue的API,特意写了这一章。


    Vue2.x是JavaScript 框架,JavaScript用的是ES6语法。而Vue3.0将使用Typescript。

    编程语言JavaScript是ECMAScript的实现和扩展 。

    ECMAScript是由ECMA(一个类似W3C的标准组织)参与进行标准化的语法规范。ECMAScript定义了:

      · [语言语法]    - 语法解析规则、关键字、语句、声明、运算符等。

      · [类型]           - 布尔型、数字、字符串、对象等。

      · [原型和继承] - 内建对象和函数的

      · [标准库]        - [JSON]、[Math]、[数组方法]、[对象自省方法]等。

    ECMAScript 6在2015年发布,es6 又称 es2015

▪  ES6的语法:

  • 使用let来声明变量   

    · 以前,使用 var 来声明变量,用let声明的变量相当于局部变量。

var name = '小鸭鸭'

    · 现在

let name2 = '隔壁的泰山'



  • 使用const来声明常量 

    · 以前,使用 var 来声明变量,用const声明的常量不能修改。

var name = '隔壁的泰山'
name = '火辣辣'

    · 现在,用const声明的常量不能修改,如果修改报错:TypeError: Assignment to constant variable。

const name = '鸭鸭'
name = '猪猪'



  • 模板字符串``        

    · 以前,使用''或者""来把字符串套起来,换行需要用/,变量用'+name+';

    · 现在,使用``,可以支援回车换行,变量用${name}表示)

      


  • 函数的默认参数

function add(a=0,b=0){
    return a+b
}
console.log(add(2,3))



  • 箭头函数  

    (1) 不需要function关键字来创建函数

    (2) 省略return关键字

    (3) 继承当前上下文的 this 关键字

    · 以前

function add(a,b){
    return a+b
}
console.log(add(3,4))

    · 现在,使用箭头函数:省略 function和return关键字   

add= (a,b) => a+b



  • 对象初始化简写      

    · 以前

function person(name,age){
      return {
          name: name,
          age: age
      }
  }
  console.log(person('小飞飞',16))

    · 现在,如果对象的名称和传入的参数名称一样,可以不写参数的名称。

function person2(name,age){
    return {
        name,
        age
    }
}
console.log(person2('小鸭鸭',18))

     · 升级版,配合箭头函数

person3 = (name,age) => {name,age}

   


  • 对象解构

    · 定义一个对象

var person = {
    name: '小飞飞',
    age: 16
}

    · 以前,需要这样赋值:

var aaa = person.name
var bbb = person.age
console.log(aaa+'====='+bbb)

    · 现在,可以这样赋值:

var {name,age} = person
console.log(name+'========'+age)

   


  • 传播操作符(...)      

    把一个对象的属性传播到另外一个对象中,...写在前面。

var addr1 = ['aaa','bbb','ccc']
var addr2 = [...addr1,'ddd']


  • 导入(import)和导出(export)

    ·  ES6+语法比较新,很多高级功能node是不支持的,就需要使用babel转换成ES5

    (1) babel转换配置,项目根目录添加.babelrc 文件

{
  "presets" : ["es2015"]
}

    (2) 安装es6转换模块

> cnpm install babel-preset-es2015 --save-dev

    (3) 全局安装命令行工具

> cnpm install babel-cli -g

    (4) 使用

> babel-node js的文件名


    · 以前的导出

exports.add = function(a,b){
    return a+b
}

    · 以前的导入

var demo = require('./demo09_lib')
console.log(demo.add(4,5))

      

    · 现在 - 第一种导出方式

     导出方法的名称。

export function add(a,b) {
return a+b
}
export function info(str) {
    console.log('日志:'+str)
}

    · 现在 - 第二种导出方式

    直接用default,里面带有很多方法。

export default {
    add(a,b){
        return a+b
    },
    info(str) {
        console.log('日志:'+str)
    }
}


    · 现在 - 第一种导入方式

    用{}解构里面的方法。

import {add,info} from './demo09_lib'
console.log(add(5,5))

    · 现在 - 第二种导入方式

    直接把整个导出的对象,起一个别名。

import demoApi from './demo09_lib'
console.log(demoApi.add(1,2))
demoApi.info('小飞飞真的好纯')



此外:

    (1) Node.js中使用ES6。

    (2) 具体的ES6语法,可以参考以下这篇文章,讲得比较全面,就不粘贴内容了。

    https://www.jianshu.com/p/69330a18bff3 


点赞
收藏
表情
图片
附件