ES6新语法

  1. let关键字
    let关键字就是用来声明变量的
    特性:
    使用let关键字声明的变量具有块级作用域( 块级作用域:一对大括号使用let关键字声明的变量才具有块级作用域)
    使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具有块级作用域
    可防止循环变量变成全局变量
// -------------------
if(true){
    let a = 10;
    var b = 11;
}
console.log(a); // a is not defined
console.log(b); // 10

let关键字声明的变量没有变量的提升:必须先声明,再使用
let关键字声明的变量具有暂时性死区特性

var num = '123';
if(true){
    console.log(num);  // num is not defined.
    var num = 'abc';
}
  1. const 关键字
    声明常量,常量就是值(内存地址)不可以变化的量
    var let 变量 = 可以变化的
    const 常量 = 不可以变化的
    特性:
    具有块级作用域
    声明常量时必须赋值
    常量赋值后,值不能修改
    规范:const声明的常量名应该用大写的,多个单词之间用_连接:const BASE_URL = “…”;

  2. 解构赋值
    ES6中允许从数组中提取值,按照对应的位置,对变量赋值。对象也可以实现解构。
    (解构赋值:解除结构,重新赋值)
    3.1 数组解构
    数组解构允许我们按照一一对应的关系从数组中提取值,然后将值赋值给变量
    解构不成功,变量的值为undefined

let ary = [1,2,3];
let [a,b,c,d,e] = ary;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
console.log(d); // undefined
console.log(e); // undefined

3.2 对象解构
对象解构允许我们使用变量的名字匹配对象的属性,匹配成功,将对象属性的值赋值给变量

let person = {name:'zhangsan',age:'20'};
let {name,age} = person;
console.log(name); // 'zhangsan'
consoloe.log(age); // 20


let {name:myName,age:myAge} = person;  // myName myAge 属于别名
console.log(myName); // 'zhangsan'
consoloe.log(myAge); // 20
  1. 箭头函数
    ES6中新增的定义函数的方式
    4.1 箭头函数基础语法
    作用:简化函数定义语法的
    语法:
() => {}
const fn = () => {}

特点:
函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号

// 原始写法:
function sum(n1,n2){
    return n1 + n2;
}
// 箭头函数:
const sum = (n1,n2) => n1 + n2;

如果形参只有一个,小括号可以省略
// 原始写法:
function fn(v){
    return v;
}
// 箭头函数:
const fn = v => v;
// 例:调用ajax请求的时候回调函数时可以使用箭头函数
$.post('http://www.baidu.com',{},function(res){...})
// 箭头函数
$.post('http://www.baidu.com',{},res => {...})

4.2 this指向
箭头函数不绑定this,箭头函数没有自己的this关键字,如果再箭头函数中使用this,this关键字将指向箭头函数定义位置的上下文this

function fn(){
    console.log(this); // {name:'zhangsan'}
    return () => {
        console.log(this) // {name:'zhangsan'}
    }
}
const obj = {name:'zhangsan'};
const resFn = fn.call(obj);
resFn();

// 因为箭头函数不绑定this,指向的是箭头函数定义位置的this,
//  而此时是定义在fn里面,fn的this指向obj,所以箭头函数这里的this也是指向obj
  1. 剩余参数
    …(三个点):接受剩余所有参数
    剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
const sum = (...args) => {
    let total = 0;
    args.forEach(item => total += item);
    return total;
}
console.log(su,(10,20)); // 30
console.log(sum(10,20,30))  // 50

补:foreach 循环数组

数组名.forEach(function(item,index){
    console.log('值:'+ item + '索引' + index);
})

// 箭头函数

数组名.forEach((item,index) => {
})
  1. 扩展运算符
    扩展运算符(展开运算符)可以将数组或者对象拆分成以逗号分割的参数序列
let ary = ["a","b","c"];
console.log(...ary);  // 相当于console.log("a","b","c");  
// 输出 a b c

可用于数组合并

// 1. 方法一
let ary1 = [1,2,3];
let ary2 = [4,5,6];
let ary3 = [...ary1,...lay2];
console.log(ary3)  // [1,2,3,4,5,6]
// 2. 方法二
ary1.push(...ary2);

将伪数组转换成真正的数组

let oDivs = document.getEelementsByTagName('div');  // 得到伪数组
var ary = [...oDivs];
console.log(ary);  // 真数组
  1. 模板字符串
    ES6新增的创建字符串的方式,使用反引号定义
let name = `zhangsan `;

特性:
模板字符串可以解析变量

<script type="text/javascript">
    let name = `张三`;
    let sayHello = `Hello,我的名字叫${name}`;
    console.log(sayHello); // Hello,我的名字叫张三
</script>

模板字符串可以换行

let result = {
    name:'张三',
    age:20,
    sex:'男'
}
let html = `<div>
    <span>${result.name}</span>
    <span>${result.age}</span>
    <span>${result.sex}</span>
</div>`

在模板字符串中可以调用函数

const fn = () => {
    return '我是fn函数'
}
let html = `我是模板字符串 ${fn()}}`;
console.log(html);
  1. 参数默认值
function add(num1,num2){
    return num1 + num2;
}
add(1,0);  // 用户觉着0没有意义

// -----------------------
function add(num1,num2 = 0){  
 // 相当于 var num = 0
 // num = 1;  // 如果传进来参数,那就是传进来的参数,如果没有传,那就用默认值0
    return num1 + num2;
}
add(1);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值