1.let声明变量
与var声明变量的区别:①作用域不同
var声明的变量是全局变量
let声明的变量是局部变量
②声明次数不同
var可以声明多次
let只能声明一次
③声明与使用顺序不同
var声明的变量会全局存储
let声明的变量只能在执行后存储
2.const声明常量
const声明常量,为只读变量
①一旦声明之后,其值是不允许改变的
②一旦声明必须初始化,否则会报错
3.数组解构
var arr = [1,2,3];
//传统的js
let a = arr[0];
let b = arr[1];
let c = arr[2];
console.log(a,b,c);
//es6的解构
var [x,y,z] = arr;
console.log(x,y,z);
4.对象解构
var user = {
username:"吕布",
weapon:"方天画戟",
horse:"赤兔马"
};
//传统js
let mingzi = user.username;
let wuqi = user.weapon;
let zuoiji = user.horse;
console.log("姓名:"+mingzi+",武器:"+wuqi+",坐骑:"+zuoji);
//es6解构
let{username,weapon,horse}=user;//注意:解构的变量名必须是对象中的属性
console.log("姓名:"+username+",武器:"+weapon+",坐骑:"+horse);
5.模板字符串
①定义多行字符串
let str=`hello,
你俩在哪儿呢?
心情不好,出来喝点啊!`;
console.log(str)
②字符串插入变量和表达式
let name = '吕布' ;
let age = 24;
// 传统拼接字符串
var info1 = "我叫:"+ name + ",我今年"+age+"岁!";
console.log(info1);
//es6拼接字符串
var info2 = '我叫:${name}.我明年$(age+1)岁!’;
console.log(info2);
③字符串中调用函数
function test(){
return '吃喝玩乐';
}
let str = '悲惨的人生,从${test()}开始';
console.log(str)
6.声明对象简写
定义对象的时候,可以用变量名作为属性名
let name = '吕布';
let age = 20;
//传统
let user1 = {
name:name,
age:age
};
console.log(user1);
//es6新语法中的简写
let user2 = {name,age};
console.log(user2);
7.定义方法简写
//传统
let user1={
say:function(){
console.log("大家好!")
}
};
user1.say();
//es6
let user2 = {
say(){
console.log("大家好啊!");
}
};
user2.say();
8.对象拓展运算符
拓展运算符{…}将参数对象中所有可以遍历的属性拿出来,然后拷贝给新对象
①拷贝对象(深拷贝)
let user1 ={
name:'项羽',
age:34
};
let user2 = {...user1};//深拷贝(克隆)
console.log(user1);
console.log(user2);
②合并对象
两个对象合并成一个对象
let user = {
name:'项羽',
age:34
};
let user2 = {head:'诸葛亮'};
let user = {...user1,...user2};
console.log(user);
9.函数的默认参数
形参处已声明,但不传入实参会怎样?
function test(name,age =18){
console.log('我叫${name},我今年${age}岁');
}
test("吕布",33);//我叫吕布,我今年33岁
test("貂蝉");//我叫貂蝉,今年18岁
test("关羽",null);//我叫关羽,今年null岁
test("马超","");//我叫马超,今年岁
test("张飞",underfined);//我叫张飞,今年18岁
10.函数时的不定参数
定义方法时,不确定有几个参数
function test(...arg){
console.log(`传入了${arg.length}个参数`);
for(var i =0; i<arg.length;i++){
console.log(arg[i])
}
}
test(1);
test(1,2);
test(1,2,3,4,5,6);
test();
test("郭","嘉",28);
11.箭头函数
箭头函数提供了一种更加简洁的函数书写方式。基本语法是:参数 =>函数体
//传统
var f1 = function(a){
return a*10
}
console.log(f1(10));
//es6
var f2 = a=>a*10
console.log(f2(20));
//当箭头函数有一个参数时,()可以省略
//当箭头函数没有参数或者有多个参数,要用()括起来
//当箭头函数的函数体有多行语句,用{}括起来,表示代码块
//当只有一条语句,并且需要返回时,可以省略{},结果会自动返回
```javascript
var f3 = (a,b)=>{
let sum =a+b;
return sum;
}
//可以f3房简化
var f4 = (a,b)=>a+b