这是我第一次使用mod操作符。到目前为止,我所做的是声明并初始化一个变量,并将字符串解析为整数。我使用if语句来确定余数是偶数还是奇数。然后我使用文档。Write显示每个if语句的输出。
但是在浏览器中没有显示输出。错误控制台消息是,我在左侧有一个无效的赋值。我试着把左边换成右边,但是左边的错误仍然无效。
另一件事是我不确定我是否应该使用解析,因为我读到mod操作符试图将字符串转换为数字。但我对此有点困惑。
无论如何,下面是代码:有什么建议吗?<?xml version ="1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-strict.dtd">
<html xmlns - "http://www.w3.org/1999/xhtml>
<html>
<head>
<script type="text/javascript">
//Declare variables
var num = 18;
//converts to integer
num = parseInt(num);
//write to output
if(num % 6 = 0){
document.write(% + "<h2> is an even number</h2>");
}
if(num % 6 != 0){
document.write(% + "<h2> is a odd number</h2>");
}
//end if
</script>
</head>
<body>
你想干什么
document.write(% + "<h2> is an even number</h2>")
% + "some string"
是无效的Javascript。
另外,正如其他人所说,您需要num % 2 == 0
(将6更改为2并确保您有两个=符号)。
最简短的写法是:
document.write("<h2> is an "+(num % 2 ? "odd" : "even")+" number</h2>");
[编辑]最初的解决方案不起作用,因为只有一个"="用于测试相等性。在Javascript中,必须使用"=="(松散相等)或"==="严格相等。
不应该是num % 2 == 0
和num % 2 != 0
吗?注意,我使用==
而不是=
,也使用2的模数
将num % 6 = 0
改为num % 2 == 0
!
如果我真的要用这段代码,我可能会这样写:
if(num % 2){
document.write("<h2> is an odd number</h2>");
} else {
document.write("<h2> is a even number</h2>");
}
这样,num % 2的计算结果为真或假,所以我可以在不进行比较的情况下使用它来获得真或假响应。由于它的响应方式,我也交换了奇数和偶数。
我也不会使用document。写,而不是改变元素的innerHTML,由于文档的问题。