if (nodes1[i].nodeName == "P" && nodes1[i].nodeType == 1) {
if(i%2==0){
nodes1[i].style.backgroundColor = "yellow"
}else{
nodes1[i].style.backgroundColor = "red"
}
}
}
if(){}else{} 是语句,是没有返回值的,而三元表达式则是表达式,是可以直接赋值的。所以你不能想当然就这么用。
如果你真想获得类似三元表达式的效果,可以这样:
for (var i = 0 i < nodes1.length i++) {if (nodes1[i].nodeName == "P" && nodes1[i].nodeType == 1) {
nodes1[i].style.backgroundColor = function(){
if(i%2==0){ //把if语句放入一个匿名函数中
return "yellow"
}else{
return "red"
}
}() //立即执行这个匿名函数
}
}
这个是一个三元运算表达式。 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、两者的核心功能不一样:
php中的核心功能是用函数方式实现,例如取得一个字符串的长度:$length = strlen(str);
而js是用对象的方法实现,例如取得一个字符串的长度:var length = str.length。
2、变量传值方式不一样:
js中,变量的传值传递和传址传递是根据传递的对象的类型决定的,不能自己随心控制;
而php中所有类型都可以自由控制其传值是传值还是传址,在变量前加上&就可以变成传址方式,不加&就是传值方式。
3、两者基本特点不一样:
php是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
js是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
参考资料来源:百度百科-javascript
参考资料来源:百度百科-PHP