嘿, 你知道吗, 再也不需要for循环了!

你所熟悉又不熟悉的加强for循环 众所周知,在加强for循环的时候不可以一边循环,一边删除,但是有特例。 首先摆出结论:可以在加强循环的同时删掉倒数第二个元素 测试代码如下: package test; import java.util.ArrayList; import java.util.List; public class ForTest { public static void main(String[] ar... 阅读详情

做一个优雅的程序员

JavaScript是一门优雅的语言, 这个'优雅'体验在JS逻辑层次处于高段位的水平, 什么意思呢, 就是一个js应用的主线剧情一定全部是函数式表达的高层可读逻辑, 还是不懂? 再举个栗子: 

一个node.js应用程序中index.js文件里面从来都不会出现一些封装的工具比如斐波那契求和函数, 也不会出基础现常量表达式比如数值, 字符串, 正则表达式, 因为这些都属于数据而不是代码!!

如果你的主线文件(比如index.js)中出现了8080, "不好, 数据404了", /^[^ ]{5}$/, 之类的本应该写在配置文件中的数据, 说明你还不是一个优雅的程序员?~

永远要记住, 数据与代码的区别!!!

EcmaScript是一门优雅的函数式编程语言

什么是函数式编程???

函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 

和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。

和过程化编程相比,函数式编程里函数的计算可随时调用。

函数式编程的核心是表达式(expression), 众所周知JavaScript中一切都是表达式, 表达式的排列组合构成了世间万物. 所以理想状态下代码中是不应该存在语句的, 可是目前js还是有许多常见的语句比如变量声明语句(var, let, const), 逻辑控制语句(if, for, try&catch), 该怎么办呢, 这些语句其实都可以用函数表达式来替代! 下面听我一一分析(*^__^*) ……

但是先记住, 将语句全部替换成表达式是有代价的, 比如?

js语句某种意义上增加了语法多样性的美

但是无所谓, 为了实现我函数式编程语言的大一统, 语句必须被封杀, 语法多样性我们不是有异步机制来带的各种新奇语法吗?..

if else --> 3元表达式

if判断语句可以用3元运算符“条件表达式A?表达式1:表达式2”来简单替代, 条件表达式A就是if中的bool数据, 同时也可以替代if的嵌套. if不是重点因为可能很多看官发现了, 复杂情况下用3元来替代if实在是太丑了, 完全丧失了可读性, 我也不推荐这种强扭的替换, 只是为了证明, if语句并不是不可替代的.

循环 --> 数组方法

重点来啦!!

JavaScript中所有的循环语句, 无论是for还是while, 都可以统统用Array.prototype的map,filter,find,some,every,forEach来替代??(强烈推荐)

循环通常要遍历一个数组, 利用数组原生提供的这些方法可以完美的满足各种功能, 不仅从语法上取代了传统循环尴尬的表现力, 更从api的层面上扩展了丰富的方法, 这里就不一一展开说明了. 利用数组替代循环还需要注意以下的Q&A:

如果要指定循环次数怎么办?

手动构造一个数组非常简单:

如果需要循环count = 10次的任务, 构造一个长度为count的数组即可:

  Array.from({length: count}).forEach

还有种更暴力的办法: new Array(count).forEach

需要中断循环呢?

so easy.

find回调返回true, some回调返回true, every回调返回false: 这3种方法可以完美的中断数组的遍历?

除此之外continue关键字也可以用return替代!

try&catch语句

解决方案: catch关键词变成catch方法

比如Promise的catch就完美的封装了异常捕获机制

 

优雅的函数式编程风是未来的主流

首先, 函数式和面向对象是并不互斥

函数式是对面向对象的升华, 取其精华去其糟粕, 继承并扩展了对象分装的哲学同时也削减了臃肿的继承机制.

未来, 面向对象的编程思想依然存在, 但函数式编程风格, 即基于事件的非阻塞引擎, 精简语义化的主线剧情, 以表达式为基本元素的代码块将成为编程界新的风景线.

解决eNSP安装WinPcap版本冲突的完整指南 网络数据包捕获工具WinPcap是网络仿真环境的基础组件,其版本兼容性直接影响eNSP等网络模拟器的正常运行。当系统已安装新版WinPcap时,eNSP内置的旧版安装程序会因版本校验机制触发报错。通过彻底卸载现有驱动、安装特定版本WinPcap 4.1.2,并验证注册表和服务状态,可解决版本冲突问题。对于需要同时使用新版驱动的场景,可采用虚拟机隔离或Npcap兼容模式。该方案适用于Windows 10/11系统环境,涉及驱动签名、虚拟网卡等典型网络工程问题。 阅读详情

相关推荐

Java 网络编程(超级详细)

1. 网络编程 1.1 网络编程概述 计算机网络 是指将地理位置相同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 1.2 网络编程三要素 1、IP地址 要想让网络中的计算机能够互相通信,必须为计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。 2、端口 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程

imByte的博客 3万+

别再面向 for 循环编程了,JDK 自带的观察者模式就很香!

大家好,你还在面向 for 循环编程吗? 还有谁不会用观察者模式吗? 本篇栈长带来《观察者模式》理论及实战~ 什么是观察者模式? 观察者模式(Observer Pattern)定义了对象间的一种一对多的依赖关系,这样只要一个对象的状态发生改变,其依赖的所有相关对象都会得到通知并自动更新。 在观察者模式中,发生改变的对象叫做观察目标,而被通知更新的对象称为观察者,一个观察目标对应多个观察者,观察者一般是一个列表集合,可以根据需要动态增加和删除,易于扩展。 使用观察者模式的优点在于观察目标和观察者之间是抽象松耦

Java技术栈,分享最主流的Java技术 601

[VisionPro] CogPMAlignTool 工具详解

[VisionPro] [CogPMAlignTool] [模板匹配]

weixin_43163656的博客 1万+

for循环里面,尽量不要写函数

1.for循环的条件里面,尽量不要写函数 #include<bits/stdc++.h> using namespace std; int arr[100000000]; int main() { clock_t start_1=clock(); for(int i=0;i<100000000;++i) arr[i]=i+1; cloc...

weixin_44750790的博客 1418

RagFlow实战:如何用DeepDoc引擎高效处理扫描PDF文档(附完整代码解析)

本文详细解析了如何利用RagFlow的DeepDoc引擎高效处理扫描PDF文档。通过实战演示从环境搭建、PDF预处理、文本检测与识别,到布局分析与表格结构提取的完整流程,并提供了完整的代码实现。该方案超越了传统OCR,能输出保留原始版面信息的结构化数据,为构建高质量知识库提供了强大支持。

weixin_29245767的博客 300

Windows 游戏 EXCEPTION_ACCESS_VIOLATION 修复:3类硬件问题与5步软件排查法

本文提供Windows游戏EXCEPTION_ACCESS_VIOLATION错误的终极修复指南,涵盖3类硬件问题(内存故障、显卡问题、超频不稳定)和5步软件排查法(文件验证、驱动更新、DEP调整等),帮助玩家彻底解决0xFFFFFFFFFFFFFFFF内存访问冲突问题。

weixin_31856057的博客 2494

为什么函数式编程可以没有while?

以前想不通,今天在写代码时不知怎么的,偶然就发现了答案.. 比如说把某个字符串s中所有"00"及更长的'00'统统换为'0'.最后结果中不能包含'00'. 00001100-->0110 显然,s.replace('00','0')是不够的. 命令式解法: def wrapperI(v): while 1: if '00' in v: ...

weixin_33800593的博客 185

[Arcgis插件分享]--在线地图、地图配色

插件介绍:MapOnline在线地图插件是一套由北京茗禾科技有限公司研发的基于ArcGIS的插件工具,用户通过注册“数据禾”网站,即可使用MapOnline实现各种在线地图资源的集成加载,以及网站共享资源的免费下载。包括:谷歌地图、谷歌地球(无偏)、高德地图、天地图(无偏)、搜搜地图、必应地图(无偏)、OSM地图(无偏)、Esri影像(无偏),以及自定义切片的加载。⑤在Arcmap操作窗口上方的菜单栏右键,调用「MapOnlinev1.2.4」②双击安装文件夹内的「MapOnline.esriAddIn」

weixin_59101151的博客 5772

for循环

今天我们来聊聊for循环, for(条件一;条件二;条件三){ //循环体 } 这就是for循环的构造 条件一:var 一个值 条件二:进入循环的判断条件 条件三:var 的值每一次循环完后,是否递增或递减 循环体:就是你输入所要循环的代码的地方 执行顺序:先执行条件一,再看条件一是否满足条件二的判断,如果满足则进入循环,反之则不进入循环,如果进入循环里则执行循环体里面的内容,最后再执行条件三。 一般for循环样式为 for(var i=0;i<10;i++){ console.log("1");/

weixin_51116095的博客 7万+

Skynet 框架面试题

本文整理了游戏服务端开发面试中 Skynet 框架的高频考点,涵盖底层架构、消息派发、协程调度、网络 I/O、harbor 跨机通信、内存管理、socket 处理、阻塞操作、错误处理等核心内容。全面覆盖 Skynet 框架的原理、使用和实战问题,追求深入准确,拒绝八股文。

小赖的博客 384

Unity最强动作战斗框架?Combat System Framework 深度解析

Combat System Framework 并不是一个简单的角色控制器,而是一套完整的动作游戏战斗开发框架。它借鉴了现代 AAA 游戏常见的架构思想,以 Gameplay Tag 为核心,结合 ScriptableObject 数据驱动设计,将技能、属性、Buff、伤害、武器、动画通知等系统有机整合在一起。同时,配套的可视化动画时间轴、Root Motion 工具和实时预览窗口,大幅优化了动作开发流程。当然,这套框架也有一定的学习门槛。

2403_88403568的博客 684

Python for循环

Python for循环

Java癫疯的博客 9万+

【PCIe 总线及设备入门学习专栏 6.1 -- PCIe MCTP】

MCTP 是由 DMTF(Distributed Management Task Force)定义的协议,用于提供设备和主机间基于不同传输层(如 PCIe、I²C、USB 等)的管理消息通信能力。在 PCIe 环境下,MCTP 消息作为的一种特殊形式传输,并被赋予唯一的 VDM Code 值0000b,以区别于其他 VDM。MCTP 在 PCIe 环境中作为一种基于 Type 1 VDM 的管理通信协议,提供了设备与主机之间的灵活数据传输能力。

CodingCos的博客 2131

你不知道的三种在for循环中使用setTimeout的方法

在 for 循环中使用 setTimeout 中可能会出现结果输出不符合预期: for (var i = 0; i < 5; i++) { setTimeout(() => { console.log(i); }); } 最后的输出结果: 5 5 5 5 5 原因是 var 变量不存在块级作用域,这5次循环中 setTimeout 使用的 i 其实都是一个 i,而setTimeout 异步执行会在 for 循环之后执行。 因此 setTimeout 获取的 i 都是最后执行完

qq_42535651的博客 2497

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C语言 ---- 关于for循环的嵌套你不知道的那些事

这篇文章主要讲述for循环的嵌套

2301_78847073的博客 1153

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

你不知道的for循环

虽然这个知识点很简单,但是在面试过程中很容易忽略在定义for循环的时候可以增加for循环命名的知识点,并且在日常开发工作中,我们有时候也难免会遇到这样的问题。

qq_37775911的博客 381

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JS中的for循环——你可能不知道的点

提出问题 问题1: 看一段for循环的代码,大家先想一下执行结果是什么? var arr = [2,4,6,8,10]; var arrLength = arr.length; for (var i = 0; i < arrLength; i++) { setTimeout(function() { console.log(i); console....

程序员成长指北 1117

大多数人不清楚的:for循环与foreach循环的性能差距

目录一、ArrayList中,for循环 VS 增强for二、LinkedList中,for循环 VS 增强for三、剖析ArrayList中两者性能的原理1.ArrayList的底层数据结构2.ArrayList中get方法的实现3.ArrayList中iterator方法的实现4.小结四、剖析LinkedList中两者性能的原理1.LinkedList的底层数据结构2.LinkedList中g...

dabusiGin的博客 2507

for循环(知道次数的时候用for循环)

#include <stdio.h> int main() { /* for循环(知道次数的时候用for循环) for(1;2;3) {4}1:初始值2:条件 3:更新初始值 4:循环体(条件成立之后要重复去做的事情) 执行顺序;1 2 4 3 2 4 3 2 4 3 2 4 3......2不成立循环结束 */ /...

qq_45760126的博客 2491

for循环和while循环的区别

当知道执行次数的时候一般用for 当条件循环时一般用while 例如: for i=0,i<n,i++ {} 这里n是已知数,可以循环n次 while i<n {} 不知道要循环多少次,但当i>=n的时候停止循环 do while循环总会执行一次,for不一定, 一般来说,for对于初学使用的要多于while,但其实while的功能要大于for,以后你慢慢会体会到的,所有的for循环都可以用while来表示,但就不是所有的while循环都可以用for循环来表示! while的用途有时候比

Hfeidz的博客 1万+

【Python语句】: For 循环的详细讲解! ! ! 附带源码

今天就跟大家分享一下python的for循环的使用。其实不管学习或者使用什么开发语言都会用到for和while循环,当然for循环是最多的,用于获取和生成批量数据,在开发中是很常用的。一、for循环for循环:循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。目的:之所以要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁。

2401_85855266的博客 4558

for循环,for循环嵌套

for循环 for(var i = 0;i<10;i++) for循环用于遍历对象,并将对象中的数拿出来 for循环的括号里用两个分号把它分成了三个部分,第一部分是循环变量,第二部分是循环的判断条件,第三部分是变量的变化规律(即每循环一次变量i的变化情况)。 for(var i = 0; i <10;i++){ console.log(i) } 让我一步步的解析 首先 我var了一个...

Lioo121的博客 7159

你不知道的Java的循环结构

java的循环结构和c++还有一些别的编程没有很大的差别,java的循环结构主要由三个控制语句,下面让我们探索java的循环结构吧(1)Java中的循环控制语句有while循环、do-while循环和for循环等,循环结构的特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止。(2)循环主要由4个部分组成初始部分:设置循环的初始状态。循环体:重复执行的代码循环条件:判断是否继续循环的条件。迭代部份:改变循环条件的值。如果没有迭代部分,会出现死循环。

swy2560666141的博客 647

c语言不知道循环次数用什么语句,C语言while循环语句 do while语句 for循环语句

一、循环结构的思想及意义:知道了循环结构,那么在生活中也一样,我们每天都在重复做着相同的事情,例如:吸气呼气的过程;又如夏天开电扇,电扇一圈一圈的转,这都是在重复。现在大家玩个游戏,一个人A来说一个人B来做,一个人A说命令“敬礼,礼毕”,另一人B做动作十遍;第一种思维那就是说一下命令就让B执行动作,B执行完动作后,A再继续说命令,B再继续做动作,同样的事情重复十遍。如果利用所学的知识,让你输出十遍...

weixin_36043142的博客 3328

vba for循环跳出本次执行下一次_你不知道的VBA技巧用 For…Next 语句循环执行同一段代码...

让相同的代码重复执行多次如果想在活动工作表前插入一张工作表,代码可以写为:如果想将这行代码重复执行 5 次,可以在过程中编写 5 行相同的代码,如:前面说过,VBA代码就像录下来歌曲,执行代码就像播放歌曲,音乐可以循环播放,过程中的VBA代码也可以设置循环执行,For…Next语句就是设置代码循环执行的一种开关。如果想让插入工作表的代码循环执行 5 次,可以将过程写为:执行这个过程的效果...

weixin_39868592的博客 1万+

JS中的for循环——你可能不知道的点。

提出问题问题1:看一段for循环的代码,大家先想一下执行结果是什么?var arr = [2,4,6,8,10];var arrLength = arr.length;f...

程序员成长指北 660
上一篇: 教你如何做一个优雅的Ecmascripter /转
下一篇: 还在纠结JS代码风格? Google给你你答案了!
xosg
xosg 领域专家: 网络协议与安全技术领域 领域专家: 网络协议与安全技术领域
博客等级 码龄9年 1986粉丝 864原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值