ES6 简单语法:

  变量声明

    ES5 var 声明变量为全局变量 会变量提升
    ES6 let 声明的变量为块级变量 且不能重复声明 不存在变量提升 # {}一个大括号为一个作用域
    ES6 const 声明一个只读的常量,一旦声明,常量的值就不能改变,且一旦声明必须立即初始化

  解构赋值(解包)

例如:
  数组
let [a,b,c] = [1,2,3]
a = 1
b = 2
c = 3

  默认赋值
let[a=3,b] = [2]
a=2
b=undifind

 
let c
let [a=2] = [c]
a = 2   对象
    

    let {a,b} = {a:"111",b:"222"}
      a=111
      b=222

    let {a:b} = {a:111}
      a=111
      b=111

    let {a,b=5} = {a:1}
      a=1
      b=5

 

  强转字符串

     ['内容'+xxx] # 中括号中的内容会被强转为str类型 如果为数组则转化为类似json格式的内容 可以实现字符串的拼接

  模板字符串:

    # 模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
    # 如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
    用 `包裹字符串${变量}`

  

  箭头函数:

    ES6允许使用“箭头”(=>)定义函数

    var f = a => a 等价于 var f = function(a){return a}

//无形参
var f = () => 5;
// 等同于
var f = function () { return 5 }; //多个形参
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
return num1 + num2;
};

# 补充this

  es5普通函数 this指向的是调用者
  箭头函数 this指向调用者所在的父类

***使用箭头函数需要注意的几点

  1.函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象;

# 例如 vue中
created(){
function(){console.log(this)} # 此处this指向的是window对象
} created(){()=>{console.log(this)}} # 此处this指向的是vue对象

  2.不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

对象的单体模式:

  # 用于解决箭头函数 this使用定义对象而不是当前所在对象
  fav(){} 等价于 fav:function(){} # this 为当前函数的this

自执行函数:

  (function(){})(); # 自执行的this 是window

面向对象

  JavaScript 语言中,生成实例对象的传统方法是通过构造函数

function Animal(name,age){ # 首字母大写表名声明类
this.name = name;
this.age = age;
}
Animal.prototype.showName = function(){ # 添加类方法 相当于继承所有Animal类都有showName方法
console.log(this.name);
console.log(this.age);
}
var a = new Animal('小黄',5); # new方法创建类对象
a.showName()

es6 创建类的方法

class Classname{
  constructor(name,age){ # 相当于python中初始化 __init__方法
    this.name = name;
    this.age = age
  }
  classdef(){}
 }

调用:
var xxx = new Classname()
xxx.classdef()

 

es6 生成器

function* xxx(){  // function* 创建生成器函数
yiled xxx
yiled xxx
return xxx
}

获取值
var f = xxx
f.next() # 如果next传参表示上一次yiled的值

set结构

  let set = new Set([1,2,3,4,4,]) //构造函数,值不重复 相当于set集合

扩展运算符

  [...set] # 将set打散成列表

for循环

  for (let i of set){console.log(i)} # 循环

set属性

  set.size #长度
  set.add('xxx') 增
  set.delete('xxx') 删
  set.has('xxx') 查
  set.clear('xxx') 清空
  set.entries 枚举

最新文章

  1. IIS 如何设置多个Access-Control-Allow-Origin
  2. java对email邮箱的真实、有效性验证
  3. zz剖析为什么在多核多线程程序中要慎用volatile关键字?
  4. JQuery动画效果
  5. 安装运行mariadb时错误:gtid_slave_pos
  6. Bootstrap系列 -- 10. 网格布局
  7. 从Windows 2012标准版升级到数据中心版,标准评价版本升级到标准体验版本并激活
  8. 9x25 串口映射
  9. the-type-java-lang-charsequence-cannot-be-resolved-in-package-declaration
  10. http://sofar.blog.51cto.com/353572/1540874
  11. 【HDOJ】4972 A simple dynamic programming problem
  12. Jndi使用好处,与简单实例【Tomcat】
  13. 关于form表单上传图片的一些记录
  14. JavaScript中的三种弹出对话框
  15. vue config.js配置生产环境和发布环境不同的接口地址问题
  16. 教你如何在Drcom下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)
  17. Python基础与进阶
  18. ActiveMQ中Broker的应用与启动方式
  19. 使用Mybatis-Generator自动生成Dao、Model、Mapping
  20. POJ1258 Agri-Net【最小生成树】

热门文章

  1. python2.7 字符处理小节
  2. 传奇HERO引擎给装备加套装属性技巧
  3. python中列表常用的几个操作函数
  4. 【做题笔记】P1090 合并果子
  5. for each.遍历集合或数组使用
  6. vs查看动态库依赖
  7. 【 SSH 实例】使用ssh开发的简单项目
  8. Linux - CentOS7 命令行快捷键简介
  9. Go键盘输入和打印输出
  10. python闯关之路二(模块的应用)