<script>
//首先创造一个空的变量
let str = ''
let level = prompt("输入金字塔的层数")
//获取输入的纯数字,其余情况都转化为NaN
level = parseInt(level) && Number(level)
//判断用户的输入是否合法
if (isNaN(level)) {
alert("金字塔的数字必须是纯数字")
}
//遍历金字塔的层数
for (let i = 1; i <= level; i++) {
//空格
let blank = level - i;
for (let k = 1; k <= blank; k++) {
str += ' ';//这里面需要添加空格,不能单纯输入引号
}
let triangle = 2 * i - 1;
for (let j = 1; j <= triangle; j++) {
str += "*"
}
str += '\n'
}
console.log(str)
</script>
输入5
补充:
不同类型数据转化为数字型数据的结果
待转换数据 | parseInt()转换结果 | parseFloat结果 | Number()转换结果 |
纯数字字符串 | 对应的数字 | 对应的数字 | 对应的数字 |
空字符串 | NaN | NaN | 0 |
null | NaN | NaN | 0 |
undefined | NaN | NaN | NaN |
false | NaN | NaN | 0 |
true | NaN | NaN | 1 |
1.代码的第6行为什么没有用parseFloat(),parseFloat()和parseInt()对除了纯数字字符串,其他数据的转换结果都是一样的,这是第一个原因。第二就是假设用户输入的是小数parseInt()会直接省略小数部分,毕竟金字塔数是整数。parseFloat()会将数据转化为数字型数据的浮点数。
2. str += ' ';//这里面需要添加空格,不能单纯输入引号,,你不在里面打空格会出现这种情况
标签:输出,数字,level,javascript,parseFloat,parseInt,金字塔,输入 From: https://blog.csdn.net/2301_81827214/article/details/143001195