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

影响网站打开速度的因素百度seo优化教程免费

影响网站打开速度的因素,百度seo优化教程免费,企业标准网站模板,做新闻微网站有哪些深入理解 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.tj-hxxt.cn/news/87542.html

相关文章:

  • 上海网站建设规范深圳专门做seo的公司
  • 哪个网站有老外教做蛋糕搜索网站排行榜
  • 在日本做网站的公司有哪些各大搜索引擎收录入口
  • 做app网站设计什么是互联网营销
  • 卖产品的网站怎么做的seo优化要做什么
  • 教育网页设计网站阳东网站seo
  • 对网站建设过程湖南株洲疫情最新情况
  • wordpress百度推送代码加统计新手怎么入行seo
  • o2o网站建设哪家好潍坊seo关键词排名
  • 济南市建设网官网seo免费优化网址软件
  • 怎样做网站 app教程万能软文范例800字
  • wordpress 幻灯片郑州网站seo优化
  • 高端网站建设公司哪里济南兴田德润实惠吗百度网盘破解版
  • 天猫网站设计排名软件
  • 武汉光谷做网站多少钱电商网站规划
  • 网站被墙 怎么做301北京网络seo推广公司
  • 网站需要哪些证件个人网页设计作品模板
  • 帝国cms网站公告怎么做网页模板建站系统
  • 通化网站制作友情链接购买
  • 智联人才招聘网googleseo服务公司
  • 小说网站开发文档爱站查询
  • 广西建设领域证书查询官方网站电商代运营收费标准
  • WordPress模仿教程宁德seo优化
  • 西安响应式网站建设公司免费网页制作成品
  • 专做代购的网站列表网推广效果怎么样
  • 陕西西安网站建设公司市场调查报告模板及范文
  • 律师事务所在线咨询免费seo整站优化多少钱
  • 产品图册设计公司六盘水seo
  • 网站rar文件淘宝标题优化网站
  • 凡科注册的网站怎么被百度收录百度手机助手下载免费安装