| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> ES6中Symbol、迭代器和生成器基本语法 -> 正文阅读 |
|
[JavaScript知识库]ES6中Symbol、迭代器和生成器基本语法 |
目录 一、SymbolES6引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,是一种类似于字符串的数据类型。 1.Symbol 创建(1)Symbol 数据类型的特点是唯一性,即使是用同一个变量生成的值也不相等。 第一种:
第二种:
? ?(2)Symbol 数据类型不能与其他数据类型运算。
直接报错 ?(3)Symbol定义的对象属性不能使用for…in循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名。 2.Symbol内置值ES6除了定义自己使用的Symbol值以外,还提供了11个内置的Symbol值,指向语言内部使用的方法。 1:Symbol.hasInstance:当其他对象使用instanceof运算符,判断是否为该对象的实例时,会调用这个方法。 2:Symbol.isConcatSpreadable:对象的Symbol.isConcatSpreadable属性等于一个bool值,表示该对象用于Array.prototype()时,是否可以展开。 3:Symbol.unscopables:该对象指定了使用with关键字时,哪些属性会被with环境排除。 4:Symbol.match:当执行str.match(myObject)时,如果该属性存在,会调用它,返回该方法的返回值。 5:Symbol.replace:当该对象被str.replace(myObject)方法调用时,会返回该方法的返回值。 6:Symbol.search:当该对象被str.search(myObject)方法调用时,会返回该方法的返回值。 7:Symbol.split:当该对象被str.split(myObject)方法调用时,会返回该方法的返回值。 8:Symbol.iterator:对象进行for ... of循环时,会调用Symbol.iterator方法,返回该对象的默认遍历器。 9:Symbol.toPrimitive:该对象被转为原始类型的值时,会调用这个方法,返回该对象对应的原始类型值。 10:Symbol.toStringTag:在该对象上调用toString方法时,返回该方法的返回值。 11:Symbol.species:创建衍生对象时,会使用该属性。 3.Symbol使用场景
给对象添加方法,不予对象属性冲突。 ?二、迭代器1.定义迭代器(lterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署lterator接口,就可以完成遍历操作,ES6新增遍历方式for...of。原生具备lterator接口的数据有:Array,Arguments,Set,Map,String,NodeList。 2.原理创建一个指针对象,指向数据结构的起始位置,第一次调用==next()==方法,指针自动指向数据结构第一个成员,接下来不断调用next(),指针一直往后移动,直到指向最后一个成员,没调用next()返回一个包含value和done属性的对象。
?3.迭代器使用场景遵循面向对象思想,自定义遍历数据。
?三、生成器1.定义生成器本身是一个特殊的函数,生成器函数是ES6提供的一种异步编程解决方案,语法行为与传统函数不同。
2.生成器调用执行生成器函数,返回的是一个迭代器对象,通过iterator.next()调用执行函数内语句,用yield 的分隔符让语句分段执行。
?3.生成器传参next('BBB')传入的参数作为上一个next方法的返回值。
4.生成器的应用?点击按钮,加载数据....,数据加载完成后隐藏(加载数据文字)
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:36:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |