蛙蛙请教:js里的if语句问题

onlytiancai 2004-10-13 02:30:57
蛙蛙请教:js里的if语句问题
怎么我经常见有些脚本里类似"if (!opener){}"的语句,opener是个对象怎么可以用来判断呢,这句和"if(opener==null){}"有什么区别呀,我都拐了,是不是javascript里面数字0,零长度字符串,null都可以隐式转换为false呀,还是有什么别的说法呀。最近碰到了一个这个问题,两个不同的页面上各有一个链接,点击后打开的是同一个窗口,在这个弹出窗口里怎么第一个页面弹出时候"if(!opener){}"里面的语句执行,但第二个页面就不执行呢,难道主页面上有问题吗,百思不得其解,望指教,谢谢,相关代码如下。

<S CRIPT LANGUAGE="JavaScript">
function retForm(sortid,typeid,sortname,typename)
{
if (!opener) return true;
opener.document.forms[0].sortid.value = sortid;
if (!opener) return true;
opener.document.forms[0].typeid.value = typeid;
if(opener.document.forms[0].cat_sel_name)
opener.document.forms[0].cat_sel_name.value = sortname+ " >> "+ typename;
self.close();
return false;
}
</S CRIPT>
...全文
180 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlytiancai 2004-10-19
  • 打赏
  • 举报
回复
同志们,不要嫌分少哦,呵呵
onlytiancai 2004-10-19
  • 打赏
  • 举报
回复
谢谢你们,可是我不更晕了
JK_10000 2004-10-16
  • 打赏
  • 举报
回复
回复人: runmin(阮 - 娶个电脑当老婆 ~.~) ( ) 信誉:112 2004-10-13 16:08:00 得分: 0
当且仅当数字为零时,该数字被当作 false?

<script>
alert(2 == true);
</script>

----------------------------------
Boolean 表达式也可以被转换为 Boolean ,在转换时,数字为0时,转换的结果是false,其它的数值为true.
如果没有转换,alert(2 == true);则是另外一个问题,见以下。

-----------

相等运算符 (==、!=)
如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。
NaN 与包括其本身在内的任何值都不相等。
负零等于正零。
null 与 null 和 undefined 相等。
相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。
其他比较均被认为是不相等的。
JK_10000 2004-10-16
  • 打赏
  • 举报
回复
回复人: runmin(阮 - 娶个电脑当老婆 ~.~) ( ) 信誉:112 2004-10-13 16:13:00 得分: 0

------
<script>
alert((!2) == false);
alert((!2) == false);
</script>
onlytiancai 2004-10-16
  • 打赏
  • 举报
回复
我已经疯了
blues-star 2004-10-13
  • 打赏
  • 举报
回复
偶地结论,布尔类型的转换,不仅跟类型有关,而且跟操作符有关。
blues-star 2004-10-13
  • 打赏
  • 举报
回复
<script>
alert(!2 == false);
alert(!2 == true);
</script>

。。。几乎死掉了,脚本对于布尔类型的转换,不是一句两句就能说清楚了。
blues-star 2004-10-13
  • 打赏
  • 举报
回复
<script>
alert(2 == false);
alert(2 == true);
</script>

狂晕,2既不算false,也不算true?
blues-star 2004-10-13
  • 打赏
  • 举报
回复
晕,好像2==true没有触犯那条规则,因为它没说不为0时全都为true。
blues-star 2004-10-13
  • 打赏
  • 举报
回复
当且仅当数字为零时,该数字被当作 false?

<script>
alert(2 == true);
</script>
onlytiancai 2004-10-13
  • 打赏
  • 举报
回复
谢谢
JK_10000 2004-10-13
  • 打赏
  • 举报
回复
可以在你自个计算机上找JS的帮助文件(应该有):
JSCRIPT*.CHM
在找到后的文件的相同目录下,也有HTML的帮助文件
onlytiancai 2004-10-13
  • 打赏
  • 举报
回复
怎么结不了帖呀,提示:
5,
贴子回复次数大于跟给分次数
onlytiancai 2004-10-13
  • 打赏
  • 举报
回复
楼上的从哪里找来的资料呀,谢谢了,能否给个这样的参考手册呀
JK_10000 2004-10-13
  • 打赏
  • 举报
回复
Boolean 表达式
一个值为 true 或者 false 的表达式。如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:
所有的对象都被当作 true。
当且仅当字符串为空时,该字符串被当作 false。
null 和 undefined 被当作 false。
当且仅当数字为零时,该数字被当作 false。

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧