码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【面试题】forEach能跳出循环吗?


    前端面试题库 (面试必备)            推荐:★★★★★

    地址:前端面试题库

    【国庆头像】- 国庆爱国 程序员头像!总有一款适合你!

    如果面试官,或者有人问你foreach怎么跳出循环,请你大声的告诉ta,跳不出!!!!!!!!!!

    foreach 跳不出循环

    为什么呢?

    先看看foreach大体实现。

    1. Array.prototype.customForEach = function (fn) {
    2. for (let i = 0; i < this.length; i++) {
    3. fn.call(this, this[i], i, this)
    4. }
    5. }
    6. list.customForEach((item, i, list) => {
    7. console.log(item, i, list)
    8. })
    9. let list = [1,2,3,4,5]
    10. list.forEach((item,index,list)=>{
    11. console.log(item,index,list)
    12. })
    13. list.customForEach((item,index,list)=>{
    14. console.log(item,index,list)
    15. })

    image.png

    两个输出的结果是一样的没啥问题,这就是foreach的大体实现,既然都知道了它的实现,那么对它为什么跳不出循环♻️应该都知道了,再不清楚的话,再看一下下面的例子。

    1. function demo(){
    2. return 'demo'
    3. }
    4. function demo2(){
    5. demo()
    6. return 'demo2'
    7. }
    8. demo()

    在demo2函数里面调用demo函数,demo函数的return能阻止demo2函数下面的执行吗?很明显不行啊,demo函数里的return跟demo2函数一点关系都没有。现在你再回头看看foreach的实现,就明白它跳不出循环一清二楚了。

    有点同学说不是可以通过抛出错误跳出循环吗?是的。看看下面例子。

    1. let list = [1,2,3,4,5]
    2. try {
    3. list.forEach((item, index, list) => {
    4. if (index === 2) {
    5. throw new Error('demo')
    6. }
    7. console.log(item)
    8. })
    9. } catch (e) {
    10. // console.log(e)
    11. }

    image.png

    结果是我们想要,但是你看代码,哪个正常人会这样写代码?是非foreach不用吗?还是其他的循环关键字不配呢。

    end

    有反驳在评论区,show me your code !!!!!!!!!

    前端面试题库 (面试必备)            推荐:★★★★★

    地址:前端面试题库

    【国庆头像】- 国庆爱国 程序员头像!总有一款适合你!

  • 相关阅读:
    吴峰光杀进 Linux 内核
    RocketMQ源码(13)—Broker 消息重放服务ReputMessageService源码解析
    R语言dist函数计算dataframe数据中两两样本之间的距离返回样本间距离矩阵,通过method参数指定距离计算的方法、例如欧几里得距离
    每日三题 7.26
    kubernetes资源监控
    SpringBoot整合Mybatisplus配置多数据源
    TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
    网易云课堂-课程分析
    Dynamic Head: Unifying Object Detection Heads with Attentions
    mysql索引部分总结
  • 原文地址:https://blog.csdn.net/weixin_42981560/article/details/132860591
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号