怎样prompt接收的值?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]"><html xmlns="[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]">
<head>
<meta http-equiv="Content-Type" c />
<title>无标题文档</title>
<script language='javascript'>
function pro(){
var tempA=window.prompt("Plese input your name!","")
if( tempA=="" || tempA==null ){
tempA="You are null!"
}
alert(tempA);
}
</script>
</head>
<body >
</body>
</html> var a=window.prompt("Your name:");就可以了啊,你没写执行函数的语句 此外,lz的if条件有问题,必须先判断null,在判断空串(逻辑运算是短路的,请牢记)
if (tempA==null || tempA==""){
tempA="You are null!";
}
或者,直接判断tempA
if (!tempA) {
tempA="You are null!";
} 不太明白 你“此外,lz的if条件有问题,必须先判断null,在判断空串(逻辑运算是短路的,请牢记)”这句话的意思,好像还是不可以啊 路主想想何谓“短路”?按我的理解就是如果有了逻辑运算就会跳过逻辑运算之前的语句,而先去处理逻辑运算。 ls~~~~逻辑运算的短路是指当按照运算顺序,已经明确可以说明该条件语句一定是“真”或一定是“假”了之后,就不会再去运算之后的条件语句,比如
var a=0,b=0;
if (++a || ++b) {};
结果a为1,b为0,因为++a后使得或运算一定为真,所以没有再去计算++b
而,同样
var a=1,b=1;
if (--a && --b) {}
结果a为0,b为1 [quote]原帖由 [bold][underline]good_good_study[/underline][/bold] 于 2007-12-3 22:47 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1129435&ptid=189335][img]http://bbs.bc-cn.net/images/common/back.gif[/img][/url]
不太明白 你“此外,lz的if条件有问题,必须先判断null,在判断空串(逻辑运算是短路的,请牢记)”这句话的意思,好像还是不可以啊 [/quote]
我说的意思是,假如tempA返回的值是null,而此时你先判断tempA=="",这样是不符合逻辑运算判断的顺序的。
必须先从最“糟糕”的情况判断开始,因为空串的概念是必须建立在非空的情况下的。
即先判断是否为空,如果不空,再判断是否为空串,如果不是空串,再判断是否包含某个子串,等等类似的逻辑先后顺序
对于在逻辑运算中,只对一个变量进行判断的情况下,必须注意先后顺序。而且这样,也可以提供逻辑运算判断的效率(即有逻辑运算短路) 理解错误,纠正观点,继续学习。 问题解决!! 现在知道了,还是我对逻辑运算的理解不深,这次又长知识了,谢谢了各位!
问题解决!! [em03]
页:
[1]
