难懂的,初学者javascript函数

难懂的,初学者javascript函数,javascript,html,Javascript,Html,我正在开始学习Javascript,第一个函数让我感到困惑。为了我自己,这里是我努力实现的目标: 声明变量:颜色和主 将颜色设置为id颜色并获取输入值 根据颜色的值是否为红色、蓝色或黄色,将primary设置为两个字符串之一 在p中显示带id的主要答案 我没有得到输出。我怀疑我应该用一些东西来代替.value,也许or语句不正确。有人能给我一些建议吗?我将不胜感激。代码如下: <div> Color:<input id="color" /> <p>Primar

我正在开始学习Javascript,第一个函数让我感到困惑。为了我自己,这里是我努力实现的目标: 声明变量:颜色和主 将颜色设置为id颜色并获取输入值 根据颜色的值是否为红色、蓝色或黄色,将primary设置为两个字符串之一 在p中显示带id的主要答案

我没有得到输出。我怀疑我应该用一些东西来代替.value,也许or语句不正确。有人能给我一些建议吗?我将不胜感激。代码如下:

<div>
Color:<input id="color" />
<p>Primary Color?</p>
<button onclick="myFunction1()">Click</button>
<p id="answer"></p>

<script>
function myFunction1()
{
   var color,primary;
   color=document.getElementById("color").value;
   primary=(color="red"||"blue"||"yellow")?"It is a primary color":"Not a primary color";
   document.getElementById("answer").innerHTML=primary;
}
</script>

</div>

三元表达式必须使用==,对每个条件求值,=运算符用于赋值

primary=(color=="red"|| color=="blue"||color=="yellow")?"It is a primary color":"Not a primary color";

您还可以考虑为一个不区分大小写的比较值提供以下值:

color=document.getElementById("color").value.toLowerCase();

JS Fiddle:

三元表达式必须使用==,对每个条件求值,=运算符用于赋值

primary=(color=="red"|| color=="blue"||color=="yellow")?"It is a primary color":"Not a primary color";

您还可以考虑为一个不区分大小写的比较值提供以下值:

color=document.getElementById("color").value.toLowerCase();
JS小提琴:两个问题

=是一项分配。==这是一个比较也是比较,但不进行类型转换。 您需要在ORs的每一侧都有一个完整的表达式 例如:

或者,您可以只搜索一个数组:

(["red", "blue", "yellow"].indexOf(color) !== -1)
两个问题

=是一项分配。==这是一个比较也是比较,但不进行类型转换。 您需要在ORs的每一侧都有一个完整的表达式 例如:

或者,您可以只搜索一个数组:

(["red", "blue", "yellow"].indexOf(color) !== -1)
不能使用| |链接要比较的值,而是链接条件。您需要将变量与每个值进行比较:

color == "red" || color == "blue" || color == "yellow"
不能使用| |链接要比较的值,而是链接条件。您需要将变量与每个值进行比较:

color == "red" || color == "blue" || color == "yellow"

考虑使用=====,因为它更容易推理。考虑使用========================================================================?但是MDN文档提供了此功能的外接程序。需要注意的是,并非所有浏览器都支持数组的indexOf。但是,MDN文档提供了此功能的附加模块。