ES6新增属性

news/2024/7/10 23:32:11 标签: es6, 前端, javascript

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>javascript">
        // 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()


http://www.niftyadmin.cn/n/5054752.html

相关文章

XML、HTML注入和越权问题处理

1、XSS和HTMl注入 原理&#xff1a;使用一些script脚本和html标签注入进系统&#xff0c;然后进行侵入。 例如&#xff1a; <img onerror"alert(1)" src"aaa" /> <p><img src1 onerroralert("xss") /></p> <p>…

数据分析技能点-机器学习优化思想

优化思想,这个听起来极其专业和高端的词汇,其实它无处不在,悄无声息地影响着我们的生活和决策。从寻找最快的上班路线,到决定如何配置投资组合,优化思想都是一个不可或缺的元素。而在机器学习领域,优化思想更是扮演着至关重要的角色。 文章目录 优化的基础优化问题与实际…

S0003-Mac下iTerm2+zsh+ohmyzsh打造优雅美观终端

背景 优雅耐看的终端工具&#xff0c;必是每个程序员的追求。 本人也不例外&#xff0c;从业几年先后使用过&#xff1a; windows电脑&#xff1a;cmd、git bash、wsl zsh、terminal zshMac电脑: 自带terminal、iTerm2、terminal zsh 其中windows terminal zsh、mac ter…

3、网页基本标签

3、网页基本标签 标题标签段落标签换行标签水平线标签字体样式标签注释和特殊符号 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>基本标签学习</title> </head> <body><!--标…

iOS CocoaPod 打包:SDK开发、Pod组件生成等

参考链接&#xff1a;CocoaPod打包 SDK开发 - 简书 iOS非集成打包&#xff1a;依赖cocoapods的Swift静态库打包、脚本合并真机与模拟器 - 简书 iOS 组件化开发----pod私有库制作及使用_ios组件化开发-CSDN博客 1.生成pod包命令 pod lib create testTools 如果提示&#xf…

如何开始着手一篇Meta分析 | Meta分析的流程及方法

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…

【设计模式】五、原型模式

文章目录 概述示例传统的方式的优缺点原型模式原理结构图-uml 类图 原型模式解决克隆羊问题的应用实例Sheep类实现clone()运行原型模式在 Spring 框架中源码分析 深入讨论-浅拷贝和深拷贝浅拷贝的介绍 小结 概述 示例 克隆羊问题 现在有一只羊 tom&#xff0c;姓名为: tom, 年…

EM@任意角@弧度制

文章目录 abstract角及其推广简单角任意角旋转方向角的分类始边和终边同终边角集合&#x1f47a;象限角非象限角 非象限角分析终边在 x x x轴上的角集合终边在 y y y轴上的角集合 角及其大小角的加减运算旋转量角的加法 角的度量角度制弧度弧度和角度弧度制角度和弧度的换算简写…