站内搜索: 请输入搜索关键词

当前页面: JAVA 编程资料牛鼻论坛AJAX & JavaScript 技术→有关javascript逻辑判断的问题

有关javascript逻辑判断的问题

发表新主题   回复此主题

第1楼 2007-05-12 00:41 朗拿度 写道:

有关javascript逻辑判断的问题

当在"if(XXXX)"括号里XXXX的语句为i=0时,则不执行;为i=1(总之是非0的任何数)时就执行,都是错误的语句,为何一个为真,一个为假?是不是javascript里有相关的规则?

第2楼 2013-08-31 12:44 Robot :

有关javascript逻辑判断的问题 相关


第3楼 2007-05-13 05:31 java在线 写道:

朗拿度你好,JavaScript 是一种可以在浏览器中运行的脚本语言,是一种弱语言(相对于C,C#,JAVA而言),只要是计算机语言就会使用到条件判断式,而JavaScript作为一种“弱”语言,它的条件判断常常令人困惑不解,特别是有其它强语言编程经历的人来说,更是不可理喻!
作为条件表达式应该是逻辑型变量,而在这里不只是字符型变量,也可以是数字型变量,也可以是一个对象,也可以是一个函数或者方法等等。这就正是这种语法令人费解的地方。
我测试统计了一下:在 JavaScript 里,不为空 "" 的字符串、不为 0 的数字、不为 null 的对象、不为 undefined 的对象属性、布尔型 true,单独作为判断式里的一个表达式时 JavaScript 通通认定为真(true),反之则为假(false)。
有任何问题请到社区nlld.net,随时为你解决问题
你用i=0时相当于条件表达式为数据0,故为假。


第4楼 2007-05-14 17:40 菜鹰 写道:

Microsoft(R) JScript(R)
if...else 语句

描述

根据一个表达式的值,有条件地执行一组语句。

语法
if (condition)
statement1
[else
statement2]

if...else 语句的语法组成如下:

部分 描述
condition 一个 Boolean 表达式。如果 condition 是 null 或undefined,则 condition 被当作 false。
statement1 condition 是 true 时要执行的语句。可以是复合语句。
statement2 condition 是 false 时要被执行的语句。可以是复合语句。
..........

-----------------------
Microsoft(R) JScript(R)
JScript 的数据类型

....
Boolean 类型
可能的 Boolean 值有 true 和 false。这是两个特殊值,不能用作 1 和 0。

注意 在比较中,任何等于 0 的表达式被视为 false,而任何不等于 0 的语句都被视为 true。对下面的表达式求值将得到 true:
(false == 0)
..........

-----------------------
以上摘自:Microsoft(R) JScript(R) JScript 语言参考 ,可以在我的“共享”里面下载(VBScript语言参考 (简体中文)--笔误--实际是:Jscript.rar)
-----------------------

既然JS把XXXX(即condition)视为 一个 Boolean 表达式,因此当i=1或i=0成立statement1执行,否则statement1不执行(如果有else 则 statement2执行)。
请看下例:
<script>
var i=111
if ( i=0) alert(i)
if ( i=1) alert(i)
</script>
(结果:弹出提示:"1")
这样“当在"if(XXXX)"括号里XXXX的语句为i=0时,则不执行;”就好理解了:
因为:i=0
即 i 被重新赋值为 0 ,当然不执行了

“为i=1(总之是非0的任何数)时就执行,都是错误的语句”
因为:i=1
即 i 被重新赋值为 1 ,当然就执行了,但是由于 i 的值变了,后面的语句执行结果可能错的

-----------
请看下例:
<script>
var i=0
if ( i==1) alert("(1)i="+i)
if ( i==0) alert("(2)i="+i)
</script>
(结果:弹出提示:"(2)i=0")
在判断两个表达式是否相等时,请用“==”连接--即“等于”
如果用“=”连接--即 将后面的表达式的值赋给前面的表达式

以上仅供参考^_^

发表新主题   回复此主题