当前位置:网站首页 > 技术博客 > 正文

es6新增了哪些特性



var/let/const的共同点:在函数内部都可以访问到在外部通过var/let/const声明的变量或常量。

let:

变量不能重复声明。

let a = 1;
let a = 2;
//报错:Uncaught SyntaxError: Identifier ‘a’ has already been declared

块级作用域。在if-else语句、while循环、for循环中使用了let声明的变量,都会产生块级作用域。

 
 
 

const:

 

但是在不同的作用域,用const声明一样的常量没问题。

 

如果const声明的变量是个引用数据类型,比如对象,那么对对象进行修改的时候,不会报错

 

没有变量提升。
具有块级作用域。
const声明的常量也是独立的,不能被window调用

 

const声明的数组和对象,对其修改不会报错

 
 

//还有数组的解构赋值,用的少就不细说了

 
 
 
 
 

Symbol是es6引入的新的原始数据类型,是js的第七种数据类型,是类似于字符串的数据类型。

在对象中,凡是属性名属于Symbol类型的,这个属性就是独一无二的,在对象中就不会产生命名冲突的问题。

 

迭代器:一种数据接口,为各种不同的数据结构提供统一的访问机制,任何数据结构只要部署Iterator接口,就能实现遍历操作。

es6创建了一种新的遍历方式for…of循环,迭代器使用for…of循环就能进行遍历操作。

原生具备迭代器接口的数据结构有Array、Arguments、Set、Map、String、TypedArray、NodeList

迭代器工作原理:
(1)创建一个指针对象,指向当前数据结构的起始位置。这个对象是由Symbol(Symbol.iterator)这个函数创建
(2)第一次调用对象的next方法,指针自动指向第一个数据成员
(3)接下来不断调用next方法,指针一直往后移动,直至到最后一个成员
(4)每调用一次next方法,都会返回一个包含value和done的对象

 

生成器就是一个特殊的函数,异步编程一种新的解决方案。


                            

版权声明


相关文章:

  • pciagppciexpress总线的相关知识2025-05-16 15:01:00
  • date integration2025-05-16 15:01:00
  • arm内核采用什么体系结构2025-05-16 15:01:00
  • jconsole监控tomcat2025-05-16 15:01:00
  • 面向对象设计是什么意思2025-05-16 15:01:00
  • 消息中间件常见问题2025-05-16 15:01:00
  • 安装扫一扫功能2025-05-16 15:01:00
  • android looper源码2025-05-16 15:01:00
  • jrebel activation code2025-05-16 15:01:00
  • redis 教程2025-05-16 15:01:00