js 高手请进,关于var 的问题

var C=D.exec(E)||H.exec(E)||F.exec(E)||E.indexOf("compatible")<0&&G.exec(E)||[];

if(I.test(E)&&!/chrome/.test(E)){
C[1]="safari";
C[2]=RegExp["$1"]||RegExp["$2"]
}

变量C 应该是bool值了吧,还能变数组么? 求详细解说:有参考的地址给一个

js是所类型语言,声明变量时都是用var,然后可以赋给这个变量任何值,不管是什么类型。你给它整数型,它能存储,你给它字符串型,它也能存储。如果声明的是一个数组,那么这个数组的元素可以是任何类型,这个数组可以同时保存各种类型。 虽然如此说,但js只是弱类型,而非没有类型。使用typeof可以查看数据的类型。例如,alert("1"),弹出的是string,而alert(1)则弹出number。 关于弱类型,如下代码: var i=1;//整数型 i="string";//赋给字符串数据,没有问题 i=[1,"a",new Date()];//数组,可以保存不同类型的数据 如上代码可以写在同一个方法,不需要重新定义i。追问

var C=D.exec(E)||H.exec(E)||F.exec(E)||E.indexOf("compatible")<0&&G.exec(E)||[];

这句是bool 运算后 赋值 还是有别的含义

追答

var c = ......这句是一种赋值方式,赋值规则如下:
1、var v = null || false || 0 || undefined;//如果赋给v的值全部都是null或者false、undefined、0,不管后面有几个或者四者顺序如何,v的值都是最后那一个。也就是说,这里的v结果为undefined。如果将false写在最后,则v的值为false;同理,将null、0写在最后,v的值就是null、0;
2、var v = null || false || 0 || undefined || true || "a" || 1;//如果赋给v的值中有以上四者以外的值,那么第一个出现的值就是最终v的结果,即这里的v结果为true。当然,如果去掉true这一项,v的结果就是字符串a了;

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答