ES6学习记录——let/const/解构赋值/模板字符串/简化对象写法/箭头函数/rest/spread

ES6学习记录

let变量

块级作用域

{
var girl='Mary'
}
console.log(girl)可以显示成功
{
let girl='Mary'
}块级作用域 只能在块中生效
如果在if else while for中用let也属于块级作用域
console.log(girl)不能显示

不存在变量提升

console.log(song);
var song = 'nnn';
不会报错
console.log(song);
let song = 'nnn';

不影响作用域链

{
let school = 'abx';
function fn(){
console.log(school);
}
fn();
}

const声明常量

  • 一定要赋初始值
  • 常量使用大写且不能更改
  • 也是块级作用域
  • 对数组和对象的元素修改 不算对常量的修改 不会报错
const TEAM = ['mary','Bob'];
TEAN.push('make')

变量的解构赋值

 	//数组的解构
        const F4 = ['mary','liu','tom'];
        let [m,l,t] =F4;
        console.log(m);
        console.log(l);
        console.log(t);
    //对象的解构
     const zhao = {
            name:'mary',
            age:'18',
            xiaopin: function() {
                console.log("演小品");
            }
        };
        let {name,age,xiaopin} = zhao;
        console.log(name);
        console.log(age);
        console.log(xiaopin);

模板字符串

反引号
1.内容中可以直接出现换行符
在这里插入图片描述
2.可以进行变量拼接

		let lovest = 'mary';
        let out = `${lovest}是巴拉巴拉`;
        console.log(out);

允许在大括号里面直接写入变量和函数 作为对象的属性和方法 这样的书写会更加简洁

let name = 'marg';
        let change = function() {
            console.log('balaaa');
        }
        const school = {
            name:name,//直接写name
            change:change//直接写change
            improve:function(){
            console.log("再来");
            }
            //可以简写为
            improve() {
            console.log(..)
            }
        }
        console.log(school);

箭头函数

ES6允许使用箭头定义函数

1.普通声明一个函数
let fn = function() {
}
箭头函数声明和调用函数
let fn = (a,b) => {
return a+b;
}
调用函数
let result = fn(1,2);
console.log(result);
2.不能作为构造实例化对象
let Person = (name,age)=>{
this.name = name;
this.age = age;
}
let me = new Person('xiao',30);
console.log(me);错误的
3.不能使用arguments变量(获取函数在调用的时候的所有实参)
let fn = ()=>{
console.log(argument);
}
fn(1,2,3);错误的
4.箭头函数的简写
4.1 省略小括号 当形参有且只有一个的时候
let add = n =>{
return n+n;
}
console.log(add(9));
4.2 省略花括号 当代码体只有一条语句的时候
let pow = (n) => {
return n*n;
}
console.log(pow(9));
可以写为:
let pow = n => n*n;
省略花括号 省略return
console.log(pow(9));

箭头函数适合于:与this无关的回调 定时器 数组的方法回调
不适合于:与this有关的回调 事件回调,对象的方法

参数默认值

ES6允许给函数参数赋初始值

1.形参初始值 具有默认值的参数 一般位置放到后面
		function add(a,b,c=10){
            return a+b+c;
        }
        let result = add(1,2);
        如果c没有参数就用10 如果add中给c了参数 就用给定的参数
2.与解构赋值结合
 		function connent(options) {
            let host = options.host;
            let username = options.username;
        }
        connent({
            host:'localhost',
            username:'root',
            password:'root',
            port:3306
        })
        function可以写为
        function connent({host="127.0.0.1",username,password,port}) {
            console.log(host)           
        }

rest参数

用arguments
		function data(){
            console.log(arguments);
        }
        data('a','b','c')
       输出的是一个对象
用rest
 		function data(...args){
            console.log(args);
        }
        data('a','b','c')
       输出的是一个数组

rest参数必须要放到参数的最后
在这里插入图片描述

spread扩展运算符

能将数组转换为逗号分割的参数序列

		const menu = ['a','b','c'];
        function bottom() {
            console.log(arguments);
        }
        bottom(menu);

用argument输出结果
在这里插入图片描述

		const menu = ['a','b','c'];
        function bottom() {
            console.log(arguments);
        }
        bottom(...menu);

用spread输出结果
在这里插入图片描述
扩展运算符的应用

1.数组的合并
用concat写法
		const arr1 = ['a','b'];
        const arr2 = ['c','d'];
        const newarr = arr1.concat(arr2);
        console.log(newarr);
用扩展运算符
		const newarr = arr1.concat(arr2);
2.数组的克隆(浅克隆)
 		const san = ['e','g','m'];
        const san1 = [...san];
        console.log(san1);
3.将伪数组转为真正的数组

```c
		const divs = document.querySelectorAll('div');
        console.log(divs);

类型是个对象
在这里插入图片描述

		const divs = document.querySelectorAll('div');
        const divArr = [...divs];
        console.log(divArr);

类型是个数组
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值