当前位置: 首页 > news >正文

乡镇中心小学校园网站建设指南西安网页设计培训排名

乡镇中心小学校园网站建设指南,西安网页设计培训排名,面包屑网站导航怎么做,连云港网站建设多少钱深入理解 JavaScript 中的 void 运算符和 yield* 表达式 在 JavaScript 中,void 运算符和 yield* 表达式是两个功能独特但常被忽视的运算符。本文将详细介绍它们的用法和应用场景,帮助您更好地理解和运用这两个运算符。 目录 void 运算符概述void 运算…

深入理解 JavaScript 中的 void 运算符和 yield* 表达式

在 JavaScript 中,void 运算符和 yield* 表达式是两个功能独特但常被忽视的运算符。本文将详细介绍它们的用法和应用场景,帮助您更好地理解和运用这两个运算符。

目录

  1. void 运算符概述
  2. void 运算符的用法
  3. void 运算符的应用场景
  4. yield* 表达式概述
  5. yield* 表达式的用法
  6. yield* 表达式的应用场景

void 运算符概述

void 是一个一元运算符,用于计算一个表达式但不返回结果,总是返回 undefined。其语法为:

void expression;
void (expression);

总是返回undefined

// 总是返回undefined
const res = void(0)
console.log(res) // undefined

需要注意考虑void运算符的优先级,以下加括号的表达式的例子可以帮助你清楚地理解 void 操作符的优先级:

void 2 === "2"; // (void 2) === '2',返回 false
void (2 === "2"); // void (2 === '2'),返回 undefined

void 运算符的用法

1. 阻止默认行为

在 HTML 中,可以使用 void 运算符防止链接跳转,当用户点击一个以 javascript: 开头的 URI 时,它会执行 URI 中的代码,然后用返回的值替换页面内容,除非返回的值是 undefined。void 运算符可用于返回 undefined。例如:

<a href="javascript:void(0)">Click me</a>

当用户点击链接时,由于 void(0) 返回 undefined,页面不会发生跳转。

2. 执行表达式但不返回值(箭头函数中的使用)

可以用 void 运算符执行一个表达式,但忽略其返回值,尤其当函数返回值不会被使用的到时候,使用void来保证API改变的时候不会改变箭头函数的行为:

button.onClick = () => void someFunction();

3. 立即执行函数表达式(IIFE)

在某些情况下,可以使用 void 运算符包装一个函数,使其立即执行:

void function() {console.log("This is an IIFE");
}();

void 运算符的应用场景

  • 防止页面跳转:在 <a> 标签的 href 属性中使用,避免链接导致页面刷新或跳转。
  • 书签脚本(Bookmarklets):在书签中执行 JavaScript 代码,使用 void 确保不会导航到其他页面。
  • 消除返回值:执行一个表达式,但不关心其返回值。

yield* 表达式概述

yield* 是 ES6 引入的生成器(Generator)表达式,用于委托另一个可迭代对象或生成器函数。其语法为:

yield* iterable;

yield* 表达式的用法

1. 委托可迭代对象

function* generator() {yield* [1, 2, 3];
}for (let value of generator()) {console.log(value); // 输出 1, 2, 3
}

2. 委托另一个生成器

function* innerGenerator() {yield 'a';yield 'b';
}function* outerGenerator() {yield 'start';yield* innerGenerator();yield 'end';
}for (let value of outerGenerator()) {console.log(value); // 输出 'start', 'a', 'b', 'end'
}

3. 处理双向通信

yield* 不仅委托迭代,也委托双向通信(nextthrowreturn 方法):

function* delegatingGenerator() {console.log('Delegating to another generator');const result = yield* anotherGenerator();console.log('Delegation complete');return result;
}function* anotherGenerator() {const value = yield 'yielded from anotherGenerator';return value;
}const gen = delegatingGenerator();
console.log(gen.next());        // { value: 'yielded from anotherGenerator', done: false }
console.log(gen.next('result')); // { value: undefined, done: true }

yield* 表达式的应用场景

  • 组合生成器:将多个生成器组合在一起,形成复杂的数据生成逻辑。
  • 处理嵌套迭代:简化对嵌套可迭代对象的遍历。
  • 委托双向通信:在生成器之间传递 nextthrowreturn

总结

void 运算符和 yield* 表达式在 JavaScript 中提供了独特的功能。void 运算符用于执行表达式但忽略返回值,常用于防止默认行为或消除返回值。yield* 表达式用于在生成器函数中委托迭代,方便地组合和处理复杂的迭代逻辑。

http://www.sczhlp.com/news/131225/

相关文章:

  • 做网站空间费用是什么意思网站建设流程共有几个阶段
  • 手机网站模板 学校哈尔滨建筑
  • 什么软件可以做网站htmlwordpress首页主题
  • 网站开发属于哪个大学专业巴彦淖尔 网站建设
  • 上虞区住房和城乡建设局网站电商运营包括哪些方面
  • 站群网站源码合肥seo整站优化网站
  • 医院网站建设怎么样网站死链接扫描
  • 芙蓉区建设局网站动图制作网站
  • 阿德勒的课题分离是很好用的东西
  • 云服务器网站建设广东seo网站推广代运营
  • 上海正规做网站公司电话友情链接是什么
  • 有关做服装的网站吗做的网站图片不显示
  • 湖北省建设厅网站证件如何修改网站后台
  • 山东建设科技产品推广网站直播盒子
  • 在手机上创建网站合肥到黄山旅游攻略
  • 网站seo在线检测鲜花网站建设策划方案
  • 用easyui做的网站网页设计师的应聘岗位
  • 读书网站建设策划书摘要免费网络游戏大全
  • php网站开发参考文献wordpress发布pdf
  • 如何创建一个网站用来存放东西三角网站建设
  • 网站首页结构图安全认证的机票网站成就怎么做
  • 网站怎样做 文件签收wordpress博客做seo
  • 太原网站建设公司大全中国十大做网站公司排名
  • 网站 wordpress六安市网站建设
  • 合肥政务新区建设局网站江苏住房与城乡建设部网站
  • 北京专业建设网站公司哪家好wordpress 新建媒体库
  • 哈尔滨模板建站服务商建站服务的网络公司有哪些
  • 做相册本哪个网站好用推动房地产发展新模式
  • 坂田网站建设推广公司网建设门户网站
  • 哪家做公司网站用word文档做网站