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新特性相关推荐

  1. ES6新特性(函数默认参数,箭头函数)

    ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式:   从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...

  2. 尚硅谷es6新特性笔记

    尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...

  3. lsdyna如何设置set中的node_list_如何快速掌握es6+新特性及核心语法?

    国庆刚刚结束,我们开始一波新的学习进程吧. ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.作为前端必备技能,我们来快速开始吧 接 ...

  4. ES6新特性----面试

    ES6新特性 关键字 let关键字 const关键字 解构赋值 变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 用途 模板字符串 箭头函数 ...

  5. ES6新特性16-Class

    ES6新特性16-Class 文章目录 ES6新特性16-Class 一.Class介绍和初体验 二.class静态成员 三.构造函数继承 四.子类对父类方法的重写 五.get和set 一.Class ...

  6. ES6新特性总结(2)解构赋值、模板字符串、Symbol

    ES6新特性总结(2)解构赋值.模板字符串.Symbol 1 解构赋值 1.1 Spread / Rest 操作符 1.2 数组的解构 1.3 对象的解构 1.4 解构的默认值和参数的解构 2 模板字 ...

  7. 一文快速掌握 es6+新特性及核心语法

    首先先祝各位节日快乐,好好去体验生活的快乐,在假期最后一天里,祝大家收获满满,同时抓住假期的尾巴,收割实用技能. 接下来我会总结一些工作中常用也比较核心的es6+的语法知识,后面又要慢慢开始工作之旅了 ...

  8. es6新增数组、数组去重、es6新特性

    ES6新增的数组方法 1.forEach forEach()会遍历数组, 循环体内没有返回值,forEach()循环不会改变原来数组的内容, forEach()有三个参数, 第一个参数是当前元素, 第 ...

  9. ES6/ES7/ES8/ES9/ES10常用特性和新特性最全总结

    ES6 ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性 变量的改变,添加了块级作用域的概念 let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变 ...

最新文章

  1. android 弹出键盘 底部控件上移,如何设置底部控件view随着软键盘的弹出而上移...
  2. AjaxPro2在Asp.net中的基本用法
  3. iangularjs 模板_AngularJS 动态模板
  4. 设定自动获得DNS服务器地址
  5. mysql教程为什么很多都用dos_在dos操作mysql基础教程详解
  6. linux-4.20.11内核消息通知链
  7. 快速使用nexus搭建maven本地私服
  8. html所属省份选择框_html中如何实现省市
  9. LinkedHashMap和HashMap的比较使用
  10. 4.8 定位一组元素
  11. C# 中using的几个用途
  12. SpringMVC错误提示(三)
  13. 深度学习群体行为识别python包_入门Python深度学习,学会这个方法事半功倍
  14. ffplay播放器原理学习
  15. 戴尔电脑开机卡logo无法开机问题及解决办法
  16. vue 创建桌面应用
  17. 2022年京东春节,如何批量设置延迟发货?
  18. java 计算月份和日期
  19. 拼写单词 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符
  20. 【面试总结】面试前不得不刷一下的硬核总结。

热门文章

  1. ​GeForce 和 TITAN 产品​对CUDA的支持对照表
  2. 取消idea显示在windows任务栏右下角消息提示图标设置
  3. SYBYL原子类型及其含义
  4. python-opencv学习笔记2 核心运算
  5. Linux学习笔记之Linux常用命令
  6. 挂机云虚拟服务器,云服务器挂机
  7. 系统分析师真题2020试卷相关概念一
  8. html图层透明度,ps图层透明度怎么调整?Photoshop中调整图层透明度的三种方法介绍...
  9. python递归判断回文数_Python实现判断回文数算法
  10. 树莓派打造智能家居(二):MQTT搭建和测试