javascript中if语句的一个问题

varnumm="31a2";if(numm){document.write("我会出现么?");}else{document.write("你不可能出现,因为我出现了"... var numm="31a2";
if(numm)
{
document.write("我会出现么?");
}
else

{
document.write("你不可能出现,因为我出现了");
}
显示结果是什么?为什么?
展开
 我来答
cmoooo
推荐于2016-08-11 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:675万
展开全部

由于numm变量中是一个存在字符的字符串,在JS中,由于if()语句的括号中需要一个布尔类型的值,而当它的值不是布尔类型时,JS会尝试将其转变为布尔值。

 

那么,我们进行一个类型测试代码,你放在你的浏览器中运行一下,就知道各种情况转换为布尔值将会如何:

 <!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>测试各种情况下的布尔转换</title> 
</head> 
<body> 
<script>
//空字符串转布尔:
document.write("“''”转换为布尔值为:" + Boolean('') + '<hr/>');
//字符串0转布尔:
document.write("“'0'”转换为布尔值为:" + Boolean('0') + '<hr/>');
//任意字符串转布尔:
document.write("“'false'”转换为布尔值为:" + Boolean('false') + '<hr/>');
//null转换为布尔:
document.write("“null”转换为布尔值为:" + Boolean(null) + '<hr/>');
//数字0转换为布尔:
document.write("“0”转换为布尔值为:" + Boolean(0) + '<hr/>');
//数字1转换为布尔:
document.write("“1”转换为布尔值为:" + Boolean(1) + '<hr/>');
//大于1的整数数字转换为布尔:
document.write("“6”转换为布尔值为:" + Boolean(6) + '<hr/>');
//大于0的浮点数转换为布尔:
document.write("“0.25”转换为布尔值为:" + Boolean(0.25) + '<hr/>');
//负数转换为布尔:
document.write("“-25”转换为布尔值为:" + Boolean(-25) + '<hr/>');
//对于if来说,还可以对未赋值(undefined)进行直接判断:
if(!a) document.write("变量a未赋值<hr/>");
var a=0;
if(typeof a != 'undefined') document.write("变量已经赋值<hr/>");
</script>
</body> 
</html>
猪头帮帮主麦兜
2013-07-02 · TA获得超过790个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:686万
展开全部
显示结果是 "我会出现么?"
因为在此情况下,numm是一个字符串,在if判断中,只要numm不是null或undefined就返回真值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式