ES6 学习总结1

目录

一、声明变量 let

1.变量不能重复声明

2.块级作用域 全局,函数,eval

 3.不存在变量提升,必须先声明再使用

4.不影响作用域链,局部找不到变量会向上一级寻找

5.var、let的区别

 二、声明常量

1.一定要赋初始值

2.一般常量用大写

3.常量的值在其他地方不能修改

4.块级作用域 

5.对于数组和对象的元素修改,不算做对常量的修改,不会报错 

三、数组

1.数组的结构

 四、字符串

1.声明

 2.内容中可直接出现换行符

3.变量拼接


一、声明变量 let

1.变量不能重复声明

let star = "宋亚轩";
let star = "芽芽";
//这样是会报错的

2.块级作用域 全局,函数,eval

什么是块级作用域?

块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。

{
    let boy = '宋亚轩';
}
//这就是一个块级作用域
console.log(girl);

 3.不存在变量提升,必须先声明再使用

console.log(song);
let song = '小小孩';
//这样会报错

let song = '小小孩';
console.log(song);

4.不影响作用域链,局部找不到变量会向上一级寻找

 什么是作用域链:很简单,就是代码块内有代码块,跟常规编程语言一样,上级代码块中 的局部变量下级可用

5.var、let的区别

    var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
    let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>let案例:点击div更改颜色</title>
    <style>
    .item {
    width: 100px;
    height: 50px;
    border: solid 1px rgb(42, 156, 156);
    float: left;
    margin-right: 10px;
    }
    </style>
    </head>
    <body>
    <div class="container">
    <h2 class="page-header">let案例:点击div更改颜色</h2>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    </div>
    <script>
    // 获取div元素对象
    let items = document.getElementsByClassName('item');
    // 遍历并绑定事件
    for (let i = 0; i < items.length; i++) {
    items[i].onclick = function() {
    // 修改当前元素的背景颜色
    this.style.background = 'pink'; // 写法一:常规写法一般无异常
    //items[i].style.background = 'pink'; // 写法二
    // 写法二:需要注意的是for循环内的i必须使用let声明
    // 如果使用var就会报错,因为var是全局变量,
    // 经过循环之后i的值会变成3,items[i]就会下标越界
    // let是局部变量
    // 我们要明白的是当我们点击的时候,这个i是哪个值
    // 使用var相当于是:
    // { var i = 0; }
    // { var i = 1; }
    // { var i = 2; }
    // { var i = 3; }
    // 下面的声明会将上面的覆盖掉,所以点击事件每次找到的都是3
    // 而使用let相当于是:
    // { let i = 0; }
    // { let i = 1; }
    // { let i = 2; }
    // { let i = 3; }
    // 由于let声明的是局部变量,每一个保持着原来的值
    // 点击事件调用的时候拿到的是对应的i
    }
    }
    </script>
    </body>
    </html>

 二、声明常量

关键字 const 

1.一定要赋初始值

const A;
//不初始化会报错

2.一般常量用大写

3.常量的值在其他地方不能修改

4.块级作用域 

5.对于数组和对象的元素修改,不算做对常量的修改,不会报错 

三、数组

ES6允许按照一定的模式从数组和对象中提取值,对变量进行赋值。

这被称为解构赋值

1.数组的结构

const TNT = ['马嘉祺','丁程鑫','宋亚轩','刘耀文','张真源','严浩翔','贺峻霖'];
let [ma,ding,song,liu,zhang,yan,he] = TNT;
console.log(song);

 2.对象的解构

const song = {
    name:'宋亚轩',
    age:'18',
    sing:function(){
        console.log("我会唱歌");
    }
};
//第一种
let {name,age,sing} = song;
console.log(name);
console.log(age);
console.log(sing);
//第二种
let {sing} = song;
sing();

 

 

 四、字符串

ES6引入新的声明字符串的方式  『` `』、' '、" "

1.声明

let str = `我是一个字符串哦!`;
console.log(str, type of str);

 2.内容中可直接出现换行符

let str = `<ul>
                <li>宋亚轩</li>
                <li>刘耀文</li>
           </ul>`;
console.log(str);

3.变量拼接

let idol = '宋亚轩';
let out = `${idol}是最帅的!!!`;
console.log(out);

 五、函数、变量简化写法

ES6允许在大括号里面直接写入变量和函数,作为对象的属性和方法。

这样的书写更加简洁

let name = '宋亚轩';
let change = function(){
    console.log('我有鼠标!!!');
}

const star = {
    name,//当属性名与属性值相同时(name:name),可简化
    change,
    improve(){//函数声明   函数名:function(){};  或者  ->函数名(){};
        console.log('我要长更高!!!!');
    }
}

change();
star.improve();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值