问题描述
- 麻烦大家帮我看一下这个js语句,加减乘除运算,只有前面的if语句能用
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">无标题文档
function abc(x,y,z,n)
{
var x,y,n;//定义变量
//输入第一个数字
x=window.prompt("请输入第一个数字:");//输入第二个数字
y=window.prompt("请输入第二个数字:");//输入一个运算符
z=window.prompt("请输入一个运算符:",z);
if(z='*')
{
n=x*y;
}
else if(z='/')
{
n=x/y;
}
else if(z='+')
{
n=x+y;
}
else
{
n=x-y;
}
alert(n);
document.write(n);
}加减乘除运算,只有前面的if语句能用 后面的else if语句 都运行不了
麻烦了
解决方案
解决方案二:
==才是比较,由于=赋值给一个变量,那么就是真的,所以前面的if一直是可用的(赋值为空才会为假)
解决方案三:
js功能很强,很多类型可以自行转换。
=从某些角度来说也可以当判断符,如果左右两边变量是两个不能互相转换的类型,那么结果为false,例如左边是函数,右边是整数,那么结果就是false。
==用来判断两个变量的字面值,如一个字符串为"111",还有一个整数为111,两者比较也会返回true,因为它俩"看起来一样"。
===才是判断两个变量是否相同的判断,称为"全等",必须两个变量字面量一样,且值相同,才可以返回true,比如"111"===111返回的是false。
js博大精深,需要慢慢领悟
解决方案四:
刚实验一下,在=运算时,右边类型为nll,或者为undefined时,或者为0,或者为NaN,或者为""时,表达式为空
解决方案五:
如何拿switch语句当if语句用,bool表达式的赋值和运算