ES6 语法大概内容

1.for of循环
for (var key of array)
2.生成器函数
function* functionName
关键字yield(遇到该关键字停止下次调用next的时候继续执行)
调用:var iter = functionName();iter.text()获取每一次yield后面的值
当生成器执行到一个yield表达式并暂停后可以实现以下功能:
调用generator.next(value),生成器从离开的地方恢复执行。
调用generator.return(),传递一个可选值,生成器只执行finally代码块并不再恢复执行。
调用generator.throw(error),生成器表现得像是yield表达式调用一个函数并抛出错误。
3.模板字符反撇号`普通的和字符串没有区别只是会当成模板执行
`用户 ${user.name} 未被授权执行 ${action} 操作。`
4.不定参数和默认参数
a.不定参数
function containsAll(haystack, ...needles) //除第一个参数外后面的参数作为一个数组传递进来如果后面没有参数默认为一个空数组
b.默认参数
function animalSentence(animals2="tigers", animals3="bears")//如果没传就用默认值=后面可以是一个表达式例如这样animals3=(animals2 == "bears") ? "sealions" : "bears")
5.解构
a.数组解构
var someArray=['aaaa',['bbb','ccc'],['ddd']];
//可以解构任何深度的嵌套数组
var [a,[b,c],[d]] = someArray;
b.对象解构
var robotA = { name: "Bender" };
var { name: nameA } = robotA;
console.log(nameA);
6.箭头函数-->趋向于运算符,=>
//ES5
$("#confetti-btn").click(function (event) {
//处理块
});
//ES6
$("#confetti-btn").click(event => {
//处理块
    });
// 为与你玩耍的每一个小狗创建一个新的空对象
    var chewToys = puppies.map(puppy => {});   // 这样写会报Bug!
    var chewToys = puppies.map(puppy => ({})); //
箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域。
7.symbol标记符
感觉没啥用啊看了文章也没看懂,感觉是类似一个标记一样单纯的为了防止代码冲突
8.babel和Broccoli
babel:将你的ES6代码转换为ES5的代码使代码可以在各浏览器中正常运行
a.命令行执行:babel script.js --out-file script-compiled.js
b.将babel作为普通的js代码引入然后在type="text/babel"块里面编写ES6代码
<script src="node_modules/babel-core/browser.js"></script>
<script type="text/babel">
// 你的ES6代码
</script>
broccoli:构建工具,理解能力有限只能了解这么多
9.集合(Set,Map),(虽然提到了垃圾回收机制但是感觉后面的弱集合还是没什么用呢)
WeakMap和WeakSet
WeakMap和WeakSet被设计来完成与Map、Set几乎一样的行为,除了以下一些限制:
WeakMap只支持new、has、get、set 和delete。
WeakSet只支持new、has、add和delete。
WeakSet的值和WeakMap的键必须是对象。
10.代理proxy
new Proxy({},{
get: => {

}
set: => {

}
})
11.class
class circle{

}
12.let和const
let类似于var,var是全局的,let只是在当前有效
const表示常量初始化的时候必须有值并且不能被改变
13.subClass
class Circle extends Shape {
        // 与上文中代码相同
    }
14.模块modules
export:export和import对应使用
export function xxx(){}//除了export外的东西和正常的js语法没有区别
import {xxx} from "xxx.js";//如果要引用多个使用{xxx,yyy}from后面的是文件名称
重命名:{flip as flipOmelet}将引入的function的名称由flip改为flipOmelet
export {
 v1 as streamV1,v2 as streamV2,v2 as streamLatestVersion
 };//导出的时候也可以重命名
Default exports:默认导出(两种方式)
export default {field1: value1,field2: value2};
export {myObject as default};
      
      

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值