document.getElementById)?true:false 和 (document.all)?true:false 在JS中分别是什么意思

JavaScript07

document.getElementById)?true:false 和 (document.all)?true:false 在JS中分别是什么意思,第1张

这个是一个三元运算表达式。 a? b:c。 a计算的结果为真的时候,返回的结果是b的值,否则是c的值。

(1)(document.getElementById)?true:false

就是判断document里面有没有getElementById这个成员,我们知道getElementById显然是document的一个函数,因为这是真的,所以这个表达式的返回值为b的值,也就是true;

(2)(document.all)?true:false

同理,document.all是页面内所有元素的一个集合。例如:document.all(0)表示页面内第一个元素。但是,这是一个奇怪的方法,它起源于IE 4不过在其他的浏览器或多或少的兼容,比如刚刚我用google浏览器测试了一下,这个表达式的返回值为false,也就是说,谷歌浏览器并不支持该方法。同时,我也查到了这个方法可以用来判断浏览器是否为IE浏览器,但是其可靠性并没有验证。

所以,可以粗略的得出一个答案:如果是IE浏览器的话,这句表达式返回的结果是true;否则,为false,也因为可以使用该表达式判断当前的环境是否是IE浏览器。

1 &&这个符号在所有的编程语言里面都有,可以简单的理解为是汉语中的并且的意思。比如有两个条件: 条件A,条件B, 如果A&&B的意思就是说A条件吃成立的 B条件也是成立的 那么A&&B这个表达式才代表是正确的,意思就是左右条件必须同时满足。

2 下面用js代码来演示一下 &&的用法。下面的代码可以直接复制到.html文件中运行,代码中两行重要代码的意思是 :

document.write(x==5 &&y==6 ) // x==5 和 y==6 这两个条件都是正确的,所以看到结果输出true

document.write(x!=5 &&y==6 )//x!=5 和 y==6 中x不等于5 这个条件是错误的,所以整个都是错误的,输出的结果显示的flase

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>运算符演示</title>

</head>

<body>

<script>

var x=5

var y=6

document.write(x==5 &&y==6 ) // x==5 和 y==6 这两个条件都是正确的,所以看到结果输出true

document.write("<br>")//这是换行的意思,意思就是不让结果在同一行显示

document.write(x!=5 &&y==6 )//x!=5 和 y==6 中x不等于5 这个条件是错误的,所以整个都是错误的,输出的结果显示的flase

</script>

</body>

</html>

3 下面是代码运行的截图:左侧是代码,右侧是运行的结果