ES6新增属性

13.ES6

1.json概述

1.什么是json
  • 一种轻量级的数据格式
  • 键必须带双引号
  • 值如果是字符串,必须带双引号
2.json能做什么
  1. 进行网络传输,其他语言也支持json
  2. 配置文件
3.json注意点
  1. json里面不能写注释
  2. 值如果是字符串,必须带引号,值如果是字符串,也必须加
  3. 不能到json的后面加分号
4.如和把js中的对象转换成json格式的字符串

JSON.stringify(对象名称)

5.把json转换为对象或数组

JSON.parse(json格式的代码)

2.本地存储(localStorage)

  1. 存储在浏览器的本地存储技术
  2. 可以存储5M左右大小的数据
  3. 本地永久存储,需要手动删除
  4. 它不能跨域
  5. 必须是字符串的格式
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button>添加</button>
    <button>修改</button>
    <button>查看</button>
    <button>删除</button>
    <script>
        // localStorage
        // 存储在浏览器的本地存储技术
        // 1.可以存储5M左右大小的数据
        // 2.本地永久存储,需要手动删除
        // 3.它不能跨越
        // 4.必须是字符串的格式

        // -----获取元素----
        var btn = document.querySelectorAll("button");
        // ----------添加---------
        btn[0].onclick = function () {
            // 1.获取已有数据,转换为数组
            var oUserList = JSON.parse(localStorage.getItem("user") || '[]')
            // 2.准备一个保存的数据
            var oUser = {
                id: 1,
                name: "小易",
                age: 22
            }
            // 3.把准备的数据,添加数组
            oUserList.push(oUser)
            console.log(oUserList);
            // 4.数组去覆盖原来的本地数据
            // 把数组转换成json格式的字符串
            var str = JSON.stringify(oUserList);
            localStorage.setItem("user", str)
        }
        // ----------修改---------
        btn[1].onclick = function () {
            // 1.获取本地数据
            var oUserList = JSON.parse(localStorage.getItem("user") || '[]')
            // 2.修改第一条数据
            oUserList[0].name = "易玲"
            console.log(oUserList);
            // 3.覆盖原来的数据
            var str = JSON.stringify(oUserList)
            localStorage.setItem("user", str)
        }
        // ----------查询---------
        btn[2].onclick = function () {
            // 1.获取本地数据
            var srt = localStorage.getItem("user")
            console.log(srt);
            var list = JSON.parse(srt)
            console.log(list);
        }
        // ----------删除---------
        btn[3].onclick = function () {
            // 1.获取本地数据
            // 根据key删除指定的数据
            localStorage.removeItem("user")
            // 清除
            localStorage.clear()
        }
    </script>
</body>

</html>

3.ES5严格模式

1.ES5引入了严格模式

1.消除一些不合理的地方

2.提高代码运行效率

2.严格模式分类

1.全局严格 函数外的,全局的,use strict 必须放在代码的第一行

2.局部严格 函数内的 局部的

3.如何使用严格模式

“use strict”

4.全局严格的特点
  1. 不可以省略var声明变量
  2. 禁止函数使用this关键字指向全局变量
  3. 禁止使用八进制
  4. 不允许在非函数的代码块内声明函数
  5. 在严格模式下,arguments变量,形参是不会变(不同变)
  6. 作用域全局 局部 块级作用域 在严格模式下,eval函数作用域

4.改变this指向bind,apply,call

  • 他们都能够改变函数的this指向
  • bind不会立即执行,需要手动执行
  • apply和call都会立即执行,区别在于apply的第二个参数是一个数组

5.let作用域

  1. 如果在{}内部声明变量,外部不能访问
  2. 它防止了变量的提升,遵循先定义,后使用原则
  3. 它防止了同一个变量,不能重复声明
  4. 它声明的值,可以被修改,可以是任意类型

6.const

  1. 它声明的变量名称只能声明一次,不能重复声明
  2. 防止变量的提升
  3. 具有块级作用域
  4. 它的值类型,不能被修改
  5. 如果是引用类型,可以修改它的属性或方法,不能修改类型和地址

7.ES6 对数组增强

  1. Array.from()将伪数组变成数组,就是只要有length的就可以转成数组
  2. Array.of()将一组值,转换为数组

8.ES6对函数增强2个点

  1. 函数的默认参数
  2. 箭头函数
    • 箭头函数的this(跟它的环境有关),它的this指向上下文对象
    • 它本身没有this,利用bind,apply,call无法改变this
    • 它默认情况是window(因为箭头函数的执行环境是全局的window)
    • 它无法被实例化,不能被new
    • 只有一个参数,可以省略小括号
    • 如果代码体只有一句话,{},return 都可以省略

9.ES6对象的增强

  1. 属性简写
  2. 方法简写
  3. object.assign()

10.Set集合

add()不能添加重复项,添加成功返回变化后的集合

delete()删除成功返回true,否则false

has()判断是否存在,存在返回true,不存在返回false

clear()清除

利用Array.from()或[…new Set()]转成数组

11.Map

添加:map.set(“键”,"值)

添加:map.set(“键”,"值)键一样,会覆盖,值一样没关系

删除:map.delete(“键”)

map.has(“键”)判断是否存在

获取:map.get(“键”)

清空:map.clear()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值