正文
ES6--基础语法(一)
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
一、支持环境:node.js完全支持,标准浏览器完全支持。
二、测试环境:
chrome下需要在script标签的最先开始的地方需要添加"use strict"。
firefox下需要在script标签的type="application/javascript;version=1.7"。
三、基本语法:
1.变量let:
1.不能重复申明变量(var 可以)。
2.没有预解析的过程。(var 有)。
console.log(a);var a = ;//console.log();undefined; let会报错。
3.块级作用域的使用{ //块级作用域;代码块}
{//从代码块的开始到申明的这段区域----暂存死区
let a = 2;
console.log(a);//可以访问;
}
console,log(a);//不可以访问。
应用:输出0-9;的数字;
for(var i = 0;i < 10;i++) {
setTimeout(function() {
console.log(i);//会输出10次10,
});
}
for(let i =0; i < 10;i++) {
setTimeout(function() {
console.log(i);
});//0-9;
}
for(var i = 0; i < 10;i++) {
(function(i) {//闭包函数(自执行函数),循环一次执行一次,相似一{}块级作用域。
setTimeout(function() {
console.log(i);
});
})(i);
}
2、常量const:不变的量。常量保存值的时候不能改变,保存的是一个对象的时候可以改变。
const a = 2; a=5;//会报错。
const b = { name = "assassion" };
b.name = "seafuwg";//对象的话可以修改。
3、解构赋值:es6 允许按照一定的规则,从数组和对象中取值,对变量赋值。(目前firfox支持词语法,chrome低版本不支持)
3.1 数组:按照顺序赋值。
var arr = [1,2,3];
var [a,b,c] = arr;
console.log(a);//
//eg: 值的交换
let x = 2;
let y = 3;
let [x,y] = [y,x];
3.2 对象:是按照键的名字赋值;方便从对象中取值,值的交换等
let obj = {
fn : function() {},
name : "assassion",
arr : [],
obj1 : {}
};
let {fn,name,obj1} = obj;
console.log(fn,name,obj1);
4.字符串的扩展
4.1对一些特殊汉字,及表情的支持占四个字节的长度
var a1 = "