学了点js

语法挺有趣的

源码来源于freecodecamp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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()方法进行输出,当然我还不了解其他可能的输出方法,就先这么记了

示例结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// running tests
// tests completed
// console output

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

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