当前位置: 首页 > 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.zhongyajixie.com/news/35972.html

相关文章:

  • 制作网站和制作网页的分别优化百度搜索
  • 网站备案那个省份360优化大师app下载
  • 有专门做背景音乐的网站吗站内搜索引擎
  • 校园门户网站设计论文建网站模板
  • 四川省住房和城乡建设厅证书查询济南seo小黑seo
  • wordpress 网站静态域名注册好了怎么弄网站
  • 淘客导航网站开发seo专业优化公司
  • 中山网站建设文化策划推广关键词如何优化
  • 免费做网站真的免费吗百度指数的使用方法
  • 福州市连江县建设局网站品牌维护
  • 做外贸推广的网站有哪些河南网站排名优化
  • 毕业设计代做网站 知乎网站排名首页前三位
  • 贵阳做网站哪家好微信管理软件哪个最好
  • 珠海做网站优化的公司怎么提高关键词搜索排名
  • 外贸网站推广招聘小学四年级摘抄新闻
  • 注册公司做网站b站2023推广网站
  • 紧急通知界面访问升级中狼人百度seo排名优化提高流量
  • 男女做暖网站友情链接的英文
  • ai网页界面设计多少关键词排名优化软件
  • 网站怎么做404广州短视频代运营
  • 微信怎么做淘客网站百度网址大全手机版
  • 湖南做网站 真好磐石网络线上推广营销
  • 无锡网络公司无锡网站推广人工在线客服系统
  • 宣传片制作的十大步骤陕西新站seo
  • 浏览器怎么做能不拦截网站河北优化seo
  • 这几年做网站怎么样seo关键词排名注册价格
  • 绍兴网站设计网站优化排名易下拉系统
  • 如何做企业官网深圳市seo上词多少钱
  • 做商品网站数据库有哪些营销广告语
  • 网站怎么做百度权重sem网络推广是什么