1、ES6语法
1、let声明方式:
// 1、声明方法:
let a;
let b;
let c = 12;
let d = 23, e=123;
// 2、不能重复声明
let start = 12;
let start = 23;
// 3、没有变量提升
console.log(song);
let song = 'word';
// 4、有作用域块
{
var name = ‘张三’;
}
console.log(name); // 报错
// 5、不影响作用域链
{
let school = ‘小学’;
function fn() {
console.log(school);
}
fn();
}
2、const声明方式:
// 1、声明方法
const SCHOOL= '学校';
// 2、一定要初始化
const A; // 报错
const A = 12;
// 3、一般常量声明使用大写
// 4、有块级作用域
// 5、常量的值不能修改
const A = 12;
A = 20; // 报错
// 6、对于数组和对象的元素修改,不算是对常量的修改
const CITY = ['上海', '广州', '深圳'];
CITY.push(‘北京’); // 不会报错
3、解构赋值:按照一定模式从数组/对象中提取值,对变量进行赋值。
// 1、数组解构
const F4 = ['小沈阳', '刘能', '赵四', '宋小宝'];
let [xsy,ln,zs,sxb] = F4;
console.log(xsy);
console.log(sx);
console.log(zs);
console.log(sxb);
// 2、对象结构
const zhao = {
name: '赵本山',
age: 60,
skill: ()=>{
console.log('演小品');
}
};
let {name, age, skill} = zhao;
console.log(name);
console.log(age);
console.log(skill);
skill();
let {skill} =zhao; // 可以单独将方法结构出来
skill(); // 解构后调用这个方法
zhao.skill(); // 这是原来没有解构调用
4、模板字符串:es5引入的新的声明字符串的方法
// 1、声明 反引号 ``;
let str = `我是一个模板字符`;
// 2、可以在内容中出现换行,不用再用加号拼接
let strs = `
<ul>
<li>北京</li>
<li>上海</li>
<li>深圳</li>
</ul>
`;
// 3、变量拼接
let actor = '史坦森';
let msg = `${actor}is a best actor`;
console.log(msg);
5、es6对象简化写法:允许在大括号里面直接写入变量和函数,
作为对象的属性和方法。
// 1、对象简化
let name = '张三';
let change = () => {
console.log('hello word');
};
const msg = {
// ①、原来写法
// name:name,
// change: change
// inprove: function() {
// }
// ②、简化写法
name,
age,
improve() { // 简化声明函数写法
}
}
console.log(msg);
6、箭头函数:this指向问题
let msg= {
name: '张三',
init: ()=> {
// this指向的是他所在的对象的【父级】,msg的父级
// 也就是Window
console.log(this);
}
}