惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
I
InfoQ
V
Visual Studio Blog
M
MIT News - Artificial intelligence
H
Help Net Security
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
A
About on SuperTechFans
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
S
SegmentFault 最新的问题
WordPress大学
WordPress大学

姓王者的博客

Linux用户Secure Boot自主维护指南 | 姓王者的博客 MAD Bugs 已经开始——关于信息安全的军备竞赛 | 姓王者的博客 解决钉钉Dingtalk无法在Linux新版内核上启动问题-修复可执行栈错误 | 姓王者的博客 突发:GitHub 正遭受大规模 Issue 赌博广告轰炸 | 姓王者的博客 Ubuntu26.04-beta体验:坚毅浣熊! | 姓王者的博客 fakeclaw装作龙虾发贴吧 | 姓王者的博客 找回12年前的QQ记忆 | 姓王者的博客 在Linux上玩Flash网页游戏-洛克王国 | 姓王者的博客 Copilot将使用交互数据来训练 | 姓王者的博客 重要通知-请更新我的GPG公钥 | 姓王者的博客 为了自由Android | 姓王者的博客 GPL"2,3"事 | 姓王者的博客 短文-对VitePlus的一点🤏小贡献 | 姓王者的博客 Bing收录没了?亲测有效的快速恢复指南 | 姓王者的博客 解决桌面设备二维码快速识别的工具-ClipQR | 姓王者的博客 解决 Nautilus 自定义终端插件安装依赖问题 | 姓王者的博客 OpenClaw 该熄火了 | 姓王者的博客 Vite8 - 统一的基建开始 | 姓王者的博客 Astro 6 推出啦 | 姓王者的博客 ubuntu的openvpn异常暂停推送更新 | 姓王者的博客 Ubuntu 24.04 安装 Win10 虚拟机 | 姓王者的博客 ESA-后记:热爱阿里云 | 姓王者的博客 Moonbit 0.8.0 重大发布,我也要改一下我的包 | 姓王者的博客 ESA Pages 边缘开发大赛获奖 | 姓王者的博客 Astro: 优化katex,mermaid和灯箱使用 | 姓王者的博客 从edgeone迁移到esa | 姓王者的博客 出租人类:AI时代的荒诞与真实 | 姓王者的博客 Astro 5.17构建性能优化实践:从18s到13s | 姓王者的博客 Moonbit License Checker 开发使用 | 姓王者的博客 Stalux Astro博客主题自荐 | 姓王者的博客
学了点js | 姓王者的博客
作者:xingwangzhe · 2024-09-25 · via 姓王者的博客

🕒 阅读时间:1 分钟 📝 字数:203 👀 阅读量: Loading...

语法挺有趣的

源码来源于freecodecamp

const character = "!";

const count = 10;

const rows = [];

let inverted = false;

function padRow(rowNumber, rowCount) {

return (

" ".repeat(rowCount - rowNumber) +

character.repeat(2 * rowNumber - 1) +

" ".repeat(rowCount - rowNumber)

);

}

for (let i = 1; i <= count; i++) {

if (inverted) {

rows.unshift(padRow(i, count));

} else {

rows.push(padRow(i, count));

}

}

let result = "";

for (const row of rows) {

result = result + "\n" + row;

}

console.log(result);

逐步分析

变量定义

使用let定义变量,而且还不分类型,这说明js变量定义很宽松呀。const,顾名思义,它也是定义固定的变量

数组定义用了[],这和java有点像。

函数声明

使用function关键字进行声明,同样不分变量类型,内部和c/cpp差不多,而且似乎某些类型变量自带方法,就比如第一个函数的.repreat()方法,似乎是字符串自带的,很方便地进行了重复,不用我再写一遍循环。

还有.push.unshift`.等方法,看来可以实现栈,队列等数据结构。

输出

使用的是console.log()方法进行输出,当然我还不了解其他可能的输出方法,就先这么记了

示例结果

// running tests

// tests completed

// console output

!

!!!

!!!!!

!!!!!!!

!!!!!!!!!

!!!!!!!!!!!

!!!!!!!!!!!!!

!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!

回想起曾经大一自己写的金字塔了:)