A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[size=13.3333px]最近在学习的过程中发现了我之前未曾了解过的一些特性,发现有些很有趣并且在处理一些问题的时候可以给我一个新的思路。
[size=13.3333px]这里我将这些特性介绍给大家。
[size=13.3333px]4 个有趣的 JS 特性
[size=13.3333px]利用 a 标签解析 URL
[size=13.3333px]有的时候我们需要从一个 URL 中提取域名,查询关键字,变量参数值等,一般我们会自己去解析 URL 来获取这些内容。可是你或许不知道还有更简单的方法。
[size=13.3333px]即创建一个 a 标签将需要解析的 URL 赋值给 a 的 href 属性,然后我们就能很方便的拿到这些内容。代码如下:
[size=13.3333px]
[size=13.3333px]标记语句(label)
[size=13.3333px]有的时候我们会写双重 for 循环做一些数据处理,我们有的时候希望满足条件的时候就直接跳出循环。以免浪费不必要资源。
[size=13.3333px]这个时候我们就可以用 label 和 continue/break 配合使用
[size=13.3333px]:
[size=13.3333px]相信你从上面两段代码的输出可以对标记语句有一个了解。
[size=13.3333px]void 运算符
[size=13.3333px]void 运算符对给定的表达式进行求值,然后返回 undefined。
[size=13.3333px]由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void会更加合理。
[size=13.3333px]使用 void 替换 undefined
[size=13.3333px]由于undefined并不是JavaScript的关键字,所以我们在赋值某个变量为undefined时可能会有点意想不到的结果。
[size=13.3333px]
如上代码我们可能希望赋值为undefined,但却得到了10这个莫名其妙的情况。所以我们可以使用使用void替换undefined。
这也是为什么我们在很多源码中都能看到使用void替换undefined。
IntersectionObserver 是什么?
IntersectionObserver 可以用来监听元素是否进入了设备的可视区域之内,而不需要频繁的计算来做这个判断。
所以我们可以用这个特性来处理曝光埋点,而不是用getBoundingClientRect().top这种更加损耗性能的方式来处理。
自己是一个五年的全栈工程师,这里推荐一下我的前端学习交流圈:开始484然后757最后760,里面都是学习前端的,裙子里会不定期更新最新的教程和学习方法,有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的web前端党欢迎加入,
当然你也可以用这个 API 来优化滚动吸顶,代码如下:
希望能对你有帮助


3 个回复

倒序浏览
有任何问题欢迎在评论区留言
回复 使用道具 举报
或者添加学姐微信
DKA-2018
回复 使用道具 举报
感谢分享~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马