ES6 -> ECMA 标准webpack
ES6 -> 2015年6月 ES6.0web
每一年6月份,发布一个版本ajax
ES6环境:chrome
webpack3.x Traceur
1.没有预解析
,不存在变量提高
json
在代码块内,只要let定义变量,在以前使用,都是报错 先定义完,再使用
<script> let a = 12; function fn(){ alert(a); //TDZ开始 暂时性死区 alert(b) let a = 5; //TDZ 结束 let b = 12; } fn(); </script>
2.同一个做用域里, 不能重复定义变量
,能够赋值segmentfault
3.for循环,for循环里面是父级做用域
,里面又一个数组
for(let i = 0; i<3; i++){ let i = 'abc'; console.log(i); }
{ //块级做用域 } {{{{let a = 12}}}} if(){xx} for(){} while(){}
const定义变量不能修改const定义完变量,必须有值,不能后赋值,不能修改,
通常定义配置文件
。
可是对象是能够修改的,由于它是引用
浏览器
冻结:Object.freeze
(对象),就能够不被修改。app
const config={ host: username: password: version: } { //TODO } IIFE,当即执行匿名函数 (function(){ //TODO })()
建议:
函数
之后 就用 let 不要在使用var const http = require('http');
重要,经常使用
)* 很是有用,特别在作数据交互 ajax
let [a,b,c] =[12,5, 6]; 注意: 左右两边,结构格式要保持一致 json: let {name,age, job} = { name:'Strive', age:18, job:'码畜' };
别名:
let {name:n,age:g, job:a} = json;
let [a,b, c="默认值"] = ['aaa','bbb'];
注意:null和undefined,null是一个对象,
有值
let a = 12; let b = 5; import {a,b,c} from './mod'
经常使用
)优势: 能够随意换行 `${变量名字}`
字符串链接(之前用:+
),要死人的。
如今:${变量名字}
let name ='Strive'; let age = 18; let str = `这我的叫${name}, 年龄是 ${age}岁`;
字符串查找:
str.indexOf(要找的东西) 返回索引(位置) ,没找到返回-1 str.includes(要找的东西) 返回值 true/false
判断浏览器: includes
<script> if(navigator.userAgent.includes('Chrome')){ alert('是chrome') }else{ alert('!是chrome') } </script>
字符串是否以谁开头:
str.startsWith(检测东西) 检测地址
字符串是否以谁结尾:
str.endsWith(检测东西) .png
重复字符串:
str.repeat(次数);
填充字符串:
str.padStart(整个字符串长度, 填充东西) 往前填充 str.padEnd(整个字符串长度, 填充东西) 日后填充 str.padStart(str.length+padStr.length, padStr)
重要
)1. 函数默认参数 function show({x=0,y=0}={}){ console.log(x,y); } show() 2. 函数参数默认已经定义了,不能再使用let,const声明 function show(a=18){ let a = 101; //错误 console.log(a); } show()
扩展运算符:...
展开数组:
<script> let arr = ['apple','banana','orange']; console.log(arr); console.log(...arr); </script>
... : [1,2,3,4] -> ... [1,2,3,4] -> 1,2,3,4,5 ...: 1,2,3,4,5 -> ...1,2,3,4,5 -> [1,2,3,4,5]
剩余参数: 必须放到最后
function show(a,b,...c){ console.log(a,b); console.log(c); } show(1,2,3,4,5)
重要,经常使用
)=>
let show = () => 1;
格式:
() => return东西 或者 () =>{ 语句 return }
例子:
var f = v => v; //等同于 var f = function(v){ return v; } var sum = (num1,num2) => num1 + num2; //等同于 var sum = function(num1,num2){ return num1 + num2; } [1,2,3].map(function (x) { return x * x; }); //箭头函数写法 [1,2,3].map(x => x *x); //简洁了许多
从例子咱们能够看出,省略了function,花括号{}
用=>
代替了。这种写法更简洁了。
注意:
this
问题,
,不在是运行时所在的对象arguments
, 用 ‘...
’