JavaScript的代码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript的代码问题相关的知识,希望对你有一定的参考价值。
在着段代码里
var i,line;
for(line=1;line<=5;line++)
document.write(" ");
for(i=1;i<=5-line;i++) document.write(" ");
for(i=1;i<=line;i++)
document.write("*");
if (i>0) document.write(" ");//这段代码的if的作用是?应该是没必要加的对吧?
document.write("<br>");
而且,前几句代码的空格是不被显示的。
而我注释的那段代码的空格却是被显示的 这是为什么?
很显然,前边不管多少个空格都只显示为一个空格的,而不是没有显示.后边的也一样,所以你可以看到每个*号后边都有一个空格的原因!
但事实上有时我们需要多个空白字符,这时就需要转义.如果我们要显示多个空格时可以在HTML中输入 表示一个空格,输入多少个就会显示多少个.另一个转义是直接使用字符编码, 表示的也是空格.这个一个通用的解决方案,原理上可以显示任何字符的,也包汉字与其他U码.当然如果不方面也可以使用x20;用十六进制显示,这都是无所谓的!
这与JS中的空白字符也是有区别的!JS使用"\n"表示一个回车,"\f"表示一个换行.这个JS生成的代码同样是还原给了浏览器,也就是说如果在JS中写document.write("\n")时,只是源码换行,而非是HTML解析换行,所看到的页面并没有换行!当然这里想输出的空格,应该使用的是 进行输出的.
不是你注释的没有显示,而是都显示的,但由于浏览器的解释,前边无论多少都只能看到一个空格,所以你认为他们是没有显示的!
if(i>0)本身就是多余的,没有必要加上,但是由于这个程序是想打印金字塔*的程序,所以document.write(" ")还是有必要的,否则除非是1,3,5这样的奇数能叠成金字塔,偶数时无法叠成的,只有加上空格,下一行的*星显在上一行前一个字符和后一个字符才能叠成! 参考技术A 在*后输出个空格
if (i>0) 多余 for里的i都是>0的 参考技术B 你没说清楚你的问题啊
加在网页里要显示的空格不是那样直接打出来的,是HTML语言里的空格代码。 参考技术C 呼呼 又见打星星!!!
这个if没必要写 在它的外面for定义i的时候是从1开始的 ,++后就不可能小于等于零了.
另外要想输出空格的话 " "这样是不能输出的,应该使用" "这就是HTML语言
我的javascript代码有什么问题[重复]
这个问题在这里已有答案:
我不知道为什么它不会工作。它不计算计算总数。它返回数组的总数而不是数组中的总数。
function calculate() {
var num = prompt("How many number : ");
var number = [];
var i = 0,
count, count1, total, total1;
while (i < num) {
number.push(prompt("Enter a number :"));
if (number[i] > 5) {
count = count + 1;
total = total + number[i];
} else if (number[i] <= 5) {
count1 = count1 + 1;
total1 = total1 + number[i];
}
i++;
}
document.write("For count >5 ", count);
document.write("For total >5 ", total);
document.write("For count <=5 ", count1);
document.write("For total >5 ", total1);
}
<html>
<body>
<p>Click the button to demonstrate the prompt box.</p>
<button onclick="calculate()">Try it</button>
</body>
</html>
我不知道我做错了什么..我需要帮助。
答案
尝试此解决方案:
function calculate() {
var num = prompt("How many number : ");
var number = [];
var i = 0,
count=0, count1=0, total=0, total1=0;
while (i < num) {
number.push(prompt("Enter a number :"));
if (parseInt(number[i]) > 5) {
count++;
total = total + parseInt(number[i]);
} else if (parseInt(number[i]) <= 5) {
count1++;
total1 = total1 + parseInt(number[i]);
}
i++;
}
document.write("For count >5 is ", count,"</br>");
document.write("For total >5 is ", total,"</br>");
document.write("For count <=5 is " , count1,"</br>");
document.write("For total >5 is ", total1,"</br>");
}
<html>
<body>
<p>Click the button to demonstrate the prompt box.</p>
<button onclick="calculate()">Try it</button>
</body>
</html>
以上是关于JavaScript的代码问题的主要内容,如果未能解决你的问题,请参考以下文章
赋值运算符、映射和承诺。该代码有啥问题? Javascript
javascript 确保在一段代码执行后再执行下面的代码???