条件语句
世上的条件语句,无非是些“如果”、“否则”。它们看似决定了程序的走向,实则不过是机器的顺从。若“如果”不成立,则“否则”立马出头——这倒像极了那时人们遇到选择的情形,总要等到不可退的地步,才不得不去另择他途。而这机械的“判断”,似乎与人们的人生抉择倒也如出一辙。
if 语句:
if 语句倒是像人们在生死关头的抉择。布尔表达式为真,程序便走向了一条预定的道路,若为假,则一切转入未知。这个选择简单直接,犹如一个人站在岔路口,只有两条路可选,似乎没有第三种可能。const num_1:number = 5 if (num_1 > 0) { console.log("数字是正数") }
if...else 语句:
如果这条路走不通,还有一条备用之路,这不就是人类在失败后寻找其他出路的写照吗?当布尔表达式为假,else 路径随即而至,犹如人们在生活中的二次抉择,总是有得有失,有真有假,关键是如何在失败中找到另一条可行的路。const num_2:number = 12; if (num_2 % 2==0) { console.log("偶数"); } else { console.log("奇数"); }
if...else if...else 语句:
而若是面对更多的选择,这 if...else if...else 就像一个人在人生路上不断被选择和判断所左右。人们总是希望自己走的是最优的那条路,但当第一个判断失败时,第二个机会便接踵而来。可惜,有时等人们意识到所有可能性都走完了,才发现终究无路可选——这“else”正是无奈的归宿。const num_3:number = 0 if(num_3 > 0) { console.log(num_3+" 是正数") } else if(num_3 < 0) { console.log(num_3+" 是负数") } else { console.log(num_3+" 不是正数也不是负数") }
switch 语句:
switch 语句则仿佛人类社会中固定的阶层或是角色。人们在既定的框架里,按照不同的条件被分配到各自的“case”。每个人、每个变量都有自己的位置,选择了角色,便注定走上某条路。若没有合适的选项,最后只能归入“default”,如同社会中的边缘人,既不属于任何一方,却也必须接受现实的结局。const grade:string = "A"; switch(grade) { case "A": { console.log("优"); break; } case "B": { console.log("良"); break; } case "C": { console.log("及格"); break; } case "D": { console.log("不及格"); break; } default: { console.log("非法输入"); break; } }
上述代码体验链接:https://www.typescriptlang.org/zh/play/
循环
循环,这个名称听来倒有些无奈。程序反复执行一段代码,像一台磨不完的机器,周而复始,若无结束条件,便会一直运作下去。这不禁让人想起那封建时代的人们,在命运的齿轮中兜兜转转,永无出路。人若无改进,程序也无终结。
for 循环:
for 循环这般,倒像一个人的起点、奋斗和归途。初始化的一刻,如同婴儿初降人世,带着最初的期望。条件是生命中设定的种种限制,每一次满足,它便推动着人们往前。那增量的步伐,不就是每个人日复一日的成长与变化?直至条件不再成立,循环终止——就像生命的结束。for 循环描绘了人的一生,在规则中兜兜转转,却从未逃离既定的命运。// for 循环实现 100+99+98+……+3+2+1 let num_1 = 100 let sum = 0 for(let i = num_1;i>=1;i--) { sum += i; } console.log(sum)
for...in 和 for...of:
而 for...in 和 for...of 则如同社会中的不同阶层与个体。for...in 在集合中挑选变量,仿佛某种冷静的社会筛选,逐个将你们推向命运的舞台。而 for...of 却更柔和,它给予每个变量机会,让他们在自己的领域中展示独特的意义——不管你是数字、字符串,还是某个对象,总有一次机会让你被认识。// for……in let j:string; let n:any = "a b c" for(j in n) { console.log(n[j]) // "a", "", "b", "", "c" } // for……of let list_1 = [1, "string", false]; for (let entry of list_1) { console.log(entry); // 1, "string", false }
while 和 do...while 循环:
while 循环,如同人们在追寻梦想的过程中不断努力的状态。只要条件成立,人便会不顾一切地重复做着同样的事情。至于 do...while,则更像是人们即使在看似不可能中,依然想尝试一次,哪怕失败,也要证明自己曾经努力过。// while let num_2 = 100 let sum_2 = 0 while(num_2 >=1) { sum_2 = sum_2 + num_2; num_2--; } console.log(sum_2) // 5050 // do……while let num_3 = 100 let sum_3 = 0 do { sum_3 = sum_3 + num_3; num_3--; } while(num_3 >=1) console.log(sum_3) // 5050
break 和 continue:
至于 break 与 continue,这二者的对比更是耐人寻味。break,像极了那些放弃的时刻,明知再继续也无望,索性一刀两断,戛然而止。而 continue 则如同那些坚持不懈的人,即便遇到困境,也只选择跳过问题,再度前行。两者的分野,倒像人生态度的不同选择。// break let i:number = 1 while(i<=10) { if (i % 5 == 0) { console.log ("在 1~10 之间第一个被 5 整除的数为 : "+i) break // 找到一个后退出循环 } i++ } // 输出 5 然后程序执行结束 // continue let num:number = 0 let count:number = 0; for(num=0;num<=20;num++) { if (num % 2==0) { continue } count++ } console.log ("0 ~20 之间的奇数个数为: "+count) //输出10个偶数
上述代码体验链接:https://www.typescriptlang.org/zh/play/
函数
函数的存在倒有些像是旧社会的那些门第,谁家有了独门秘诀,便能自成一派,远远超出常人之上。函数也如此,将复杂的操作隐藏在背后,只留一个简洁的入口,表面简单,背后精深。而程序员不过是这幕后的操刀者,将所有的逻辑细细雕琢,方才推出这样一位“高人”。
在这无形的语言世界里,函数便是那挥刀的武士。你若是命令它“去”,它便去;你若命令它“返”,它便带着结果归来。函数声明如同战前的号令,定义则是那一场厮杀。代码,不再是混乱的块状,依托函数,理性重获秩序。
定义函数——一场预谋
所谓函数,不过是将一团杂乱无章的代码,裹在function
之后,加上个名字,供你召唤。例如:function test() { console.log("调用函数") } test();
这只是一个信号,一声叫喊,它没有回音。但有时候,呼唤便意味着等待结果——通过
return
,函数可以带着战果返回。函数的回报
就如老舍笔下那个弃掉余生的祥子,函数若是没有return
,它便是没有归处。return
便是归途,胜者带着战利品,败者空手而归:function greet(): string { return "Hello World"; } console.log(greet());
这回的呼唤得到了回响,一个字符串“Hello World”,从函数的深处传回了耳边。
参数——送去战场的兵卒
函数并非独自作战。你可以送去一支部队,称之为“参数”,让它在函数中行使使命。兵贵精简,过多则乱,过少则无功:function add(x: number, y: number): number { return x + y; } console.log(add(1, 2));
可选与默认——兵力的调配
若是某一兵卒尚未就位,则可以选择省去它,或给它设定一个默认去向。可选参数如同无须总是上场的边角兵,默认参数则如同待命的后援:function buildName(firstName: string, lastName?: string) { return firstName + " " + (lastName || ""); } console.log(buildName("鲁迅", "先生")); console.log(buildName("鲁迅"));
若无
lastName
,函数便依靠默认值完成任务。剩余与匿名——放手与自我
若是兵卒难以尽数,则以...
号召剩余之兵,一同踏上战场。匿名函数,如同那未署名的游侠,行侠仗义,无需显赫:function addNumbers(...nums: number[]) { return nums.reduce((sum, current) => sum + current, 0); } console.log(addNumbers(1, 2, 3, 4));
递归——永恒的回音
递归是函数的自我折返,如同那老和尚讲的故事,一层套着一层,最终又归于原点:function factorial(n: number): number { return n <= 1 ? 1 : n * factorial(n - 1); } console.log(factorial(5)); // 120
就像讲述“从前有座山”的故事,它无尽地重复自己,直到条件满足。
Lambda——化繁为简
Lambda 函数如同那把轻巧的短刀,一击而中,不见冗余。箭头函数,以其简洁,取代了繁复的传统:const multiply = (x: number, y: number) => x * y; console.log(multiply(10, 20)); // 200
如同短小的诗句,言简意赅,击中要害。
在这 TypeScript 的世界,函数便如江湖侠客,时而孤独行走,时而携手作战,变化多端却又井然有序。TypeScript里的知识点,不外乎是代码的剪影,但其中映射的,却是我们生活中的各种哲理。
上述代码体验链接:https://www.typescriptlang.org/zh/play/
参考资料
*以上文字内容几乎全部由 ChatGPT 编写创作
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。