ES5新特性/ES6新特性
1.严格模式
在程序点公布写"use strict"
①禁止给为声明的变量赋值 ------> 避免了内存泄漏和全局污染
②静默失败升级为错误 ------->静默失败,也会报错!便于调试
③普通函数调用和匿名函数自调中的this不再指向window,而是指向undefined,防止内存泄漏和全局污染
④禁止使用arguments.callee -------> 递归是使用,但为了避免紧耦合,可用循环代替
2.保护对象,控制对象的属性和结构
① 保护对象的属性
1.writable:true/false 是否可修改这个属性
2.enumerable:true/false 是否可被 for in遍历到 (但是只能防住for in,不能防住清醒访问)
3.configurable:true/false (a.是否可删除该属性 b.是否可修改前两个开关)其中configurable一旦改为false是不可逆的
② 保护对象的结构
1.防扩展:禁止添加新属性:obj.preventExtensions(obj) 默认是true
2.密封:在兼具防扩展的同时,进一步禁止删除现有属性 object.seal(obj)
3.冻结:在兼具密封的基础上,进一步禁止修改属性的值 object.freeze(obj)
3.call、apply、bind替换this所指对象
1.函数.call("要替换的对象",参数一,参数二,.......):
2. 函数.apply("要替换的对象",数组),当实参列表为一个数组的时候才用apply,通常是将数组整体传入,现讲数组打散,然后分别将参数传给原函数
3.var newobj = obj.bind() bind的用法和前两个有所区别.bind是在原函数的基础上创建一个新函数的副本,并永久替换新函数中的this为指定的对象。新函数中的this和开头部分形参,已被永久替换为固定的对象和固定的参数值。今后如果需要反复调用新函数可使用bind替换this.,只要传入可能变化的剩余几个实参值即可!
ES6
1.新增了块级作用域(let,const)
2.提供了定义类的语法糖(class)
3.新增了一种基本数据类型(Symbol)
4.新增了变量的解构赋值
5.函数参数允许设置默认值,引入了rest参数,新增了箭头函数。
6.数组新增了一些API,如isArray / from / of 方法;数组实例新增了 entries(),keys() 和 values() 等方法。
7.对象和数组新增了扩展运算符
8.ES6新增了模块化(import / export)
9.ES6新增了Set和Map数据结构。
10.ES6原生提供Proxy构造函数,用来生成Proxy实例
11.ES6新增了生成器(Generator)和遍历器(Iterator)
解构:分解数据结构。
赋值:为变量赋值。
解构赋值:从数组或者对象中提取值,按照对应的位置,对变量赋值(在数组解构中,只 要解构的目标可以遍历,就可以实现解构赋值)。
1:Map:类似于对象,是一个存储键值对的集合,但是‘键’’的范围不仅仅是字符串,所有类型的值包括对象都可以当做键。
2:创建Map集合:
2.1:创建Map集合有两种:1.直接new Map()创建实例对象;2.接收一个数组作为参数来创建实例对象(该数组的成员必须是一个个表示键值对的数组)。
3:Map集合常用属性和方法:
3.1:.has(key);查找key,返回布尔值。
3.2:.get(key) 根据key查找value。
3.3:.set(key,value) 添加键值对。
3.4:.size获取存储的数量。
总结
1:var声明的变量是函数变量(全局变量和局部变量),会有变量提升的风险,可以先使用再声明,尽量少用。
2:let声明的变量具有块级作用域的特性,即只能在声明的代码块中使用,只能先声明之后才能使用。
3:const声明的变量是常量,常量的值不允许更改,如果常量是引用类型(对象或者数组),那么可以更改常量内部属性的值。
4:解构就是分解数据结构,赋值就是为变量赋值;在ES6中允许从对象和数组以及任何可以遍历的数据类型进行解构赋值。
5:箭头函数是将函数简化定义的一种方式,将箭头函数赋值给一个变量,变量名就是函数名称,通过调用变量名来调用函数。
6:Set数据结构的声明方式分为两种:1、直接实例化一个空的Set()构造函数;2、在Set构造函数中传入一个数组。Set构造函数可以用来做数组去重等操作。
7:Map数据结构的声明方式分为两种:1、直接实例化一个空的Map()构造函数;2、在Map构造函数中传入一个带有键值对的数组。
————————————————
版权声明:本文为CSDN博主「ChenYL.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52858303/article/details/127825249
ES5新特性/ES6新特性相关推荐
- ES6新特性(函数默认参数,箭头函数)
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式: 从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...
- 尚硅谷es6新特性笔记
尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...
- lsdyna如何设置set中的node_list_如何快速掌握es6+新特性及核心语法?
国庆刚刚结束,我们开始一波新的学习进程吧. ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.作为前端必备技能,我们来快速开始吧 接 ...
- ES6新特性----面试
ES6新特性 关键字 let关键字 const关键字 解构赋值 变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 用途 模板字符串 箭头函数 ...
- ES6新特性16-Class
ES6新特性16-Class 文章目录 ES6新特性16-Class 一.Class介绍和初体验 二.class静态成员 三.构造函数继承 四.子类对父类方法的重写 五.get和set 一.Class ...
- ES6新特性总结(2)解构赋值、模板字符串、Symbol
ES6新特性总结(2)解构赋值.模板字符串.Symbol 1 解构赋值 1.1 Spread / Rest 操作符 1.2 数组的解构 1.3 对象的解构 1.4 解构的默认值和参数的解构 2 模板字 ...
- 一文快速掌握 es6+新特性及核心语法
首先先祝各位节日快乐,好好去体验生活的快乐,在假期最后一天里,祝大家收获满满,同时抓住假期的尾巴,收割实用技能. 接下来我会总结一些工作中常用也比较核心的es6+的语法知识,后面又要慢慢开始工作之旅了 ...
- es6新增数组、数组去重、es6新特性
ES6新增的数组方法 1.forEach forEach()会遍历数组, 循环体内没有返回值,forEach()循环不会改变原来数组的内容, forEach()有三个参数, 第一个参数是当前元素, 第 ...
- ES6/ES7/ES8/ES9/ES10常用特性和新特性最全总结
ES6 ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性 变量的改变,添加了块级作用域的概念 let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变 ...
最新文章
- android 弹出键盘 底部控件上移,如何设置底部控件view随着软键盘的弹出而上移...
- AjaxPro2在Asp.net中的基本用法
- iangularjs 模板_AngularJS 动态模板
- 设定自动获得DNS服务器地址
- mysql教程为什么很多都用dos_在dos操作mysql基础教程详解
- linux-4.20.11内核消息通知链
- 快速使用nexus搭建maven本地私服
- html所属省份选择框_html中如何实现省市
- LinkedHashMap和HashMap的比较使用
- 4.8 定位一组元素
- C# 中using的几个用途
- SpringMVC错误提示(三)
- 深度学习群体行为识别python包_入门Python深度学习,学会这个方法事半功倍
- ffplay播放器原理学习
- 戴尔电脑开机卡logo无法开机问题及解决办法
- vue 创建桌面应用
- 2022年京东春节,如何批量设置延迟发货?
- java 计算月份和日期
- 拼写单词 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符
- 【面试总结】面试前不得不刷一下的硬核总结。
热门文章
- ​GeForce 和 TITAN 产品​对CUDA的支持对照表
- 取消idea显示在windows任务栏右下角消息提示图标设置
- SYBYL原子类型及其含义
- python-opencv学习笔记2 核心运算
- Linux学习笔记之Linux常用命令
- 挂机云虚拟服务器,云服务器挂机
- 系统分析师真题2020试卷相关概念一
- html图层透明度,ps图层透明度怎么调整?Photoshop中调整图层透明度的三种方法介绍...
- python递归判断回文数_Python实现判断回文数算法
- 树莓派打造智能家居(二):MQTT搭建和测试