ES6部分语法
1、严格模式
<script type='module'> 严格模式 <script>
'use strict'严格模式
在定义上述代码中只要出现就视为严格模式,它会有一下强制特点:
变量必须定义后在使用
<script type = 'module'>
var i = 1;
g = 2;//会直接报错 如果不加 type = 'module' 就不会报错
console.log(i)
</script>
不允许参数名重复
function fn(a,a){
//会直接报错
console.log(a);
}
fn(3,5)
严格模式不允许使用with
with(div.style){
width="100px";
height="100px";
backgroundColor="red";
border="1px solid #000000";
}
只读属性只要修改就会报错
无法使用八进制
不能删除不可删除属性否则会报错
eval和arguments不能重新赋值
arguements.callee 和 arguements.callee.caller均不能使用
在顶层函数中this不能执行window,而是undefined。
2、let和const
let可以定义一个变量 const可以定义一个常量
let定义的变量仅在{}作用域内使用,var和let可以混合使用
let a = 3;//定义一个变量a
if(a<2){
let b = 10};
console.log(b)//会报错 b只能在if语句作用域内使用
const EVENT = 'event';//常量不能修改
const EVENT// 没有啥意义
const obj = {
a:1,b:2};
//这样定义可以防止obj的引用地址发生改变。但这样会一直存放在堆中,无法销毁。
3、箭头函数
在ES6中添加了箭头函数
var fn = () => {
var a = 3;
var b = 4;
return a + b
}//箭头函数写法
var fn = function (){
var a = 3;
var b = 4;
return a + b;
}//普通函数写法