2 angletinghai Angletinghai 于 2016.02.01 15:27 提问

关于一个网页中JavaScript部分的变量定义问题
 <script language="javascript" type="text/javascript">
        var _dyweq = _dyweq || [];
            第二句是什么意思?初学,不懂,请各位高手多多指教

4个回答

u013469474
u013469474   2016.02.01 15:56

逻辑或在操作数不是布尔值的时候,不一定会返回布尔值,会遵循一下规则:
如果第一个操作数是对象,则返回第一个操作数;
如果第一个操作数的求值结果为false,则返回第二个操作数;
如果两个操作数都是对象,则返回第一个操作数;
如果两个操作数都是null,则返回null;
如果两个操作数都是NaN,则返回NaN;
如果两个操作数都是undefined,则返回undefined。
在 var _dyweq = _dyweq || [];中,会先判断_dyweq是否存在(不为undefined或null)。如果存在的话会遵循上述第一条规则,返回该操作数,
并且因为短路操作,此语句结束;如果不存在,则根据第二条规则,会返回第二个操作数。
所以一句话,该语句的意思就是如果_dyweq存在则将他赋值给新定义的变量,否则将空数组赋值给新定义的变量。

showbo
showbo   Ds   Rxr 2016.02.01 15:54

_dyweq如果没有定义过就用[]来代替,类似下面的这种代码,防止 _dyweq被覆盖


 <script>var a=1</script>
<script>
    var a = a || 2
    alert(a)//1
</script>
qq_27093465
qq_27093465 什么叫防止覆盖,难道不是为预防undefined或者null嘛,西特。
2 年多之前 回复
fk002008
fk002008   2016.02.01 15:32

在js中空的值或者对象那是默认为false的
var _dyweq = _dyweq || [];

表示定义数组的时候,如果_dyweq不存在那就把数组定义成[]
是一种复合写法
等价于
if (_dyweq ==='undefined' || _dyweq == null)
_dyweq = [];

qq_19891827
qq_19891827   2016.02.01 16:22

1.在js中变量未定义时默认值为undefined,undefined在逻辑运算中会转为false;
2.这是一个逻辑或的短路逻辑的一个应用,意思是按照优先级从左至右,优先选择执行从左侧开始第一个不为false的语句;
3.所以本句代码的实际含义是,如果该变量为定义,或值为null,则给变量赋值为空数组(‘【】’);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JavaScript中变量的定义方式
在JavaScript中,变量的定义方式主要有两种,一种是隐式定义,另一种是显式定义。 隐式定义是直接给变量赋值,如c=3;a="hello"; 显示定义是用var关键字来定义,声明时变量可以没有初始值,并且变量的类型也是不确定的,只有在第一次给变量赋值时,变量的数据类型才确定。如 var a; a=true; 另外:要注意,在JavaScript中变量是区分大小写的。对于JavaScript中变量
在js中变量的有效范围问题
JavaScript中变量的作用 本文适合JS初学者,大神请绕路! 1.在方法中定义一个变量的时候不用var的情况 //告诉浏览器的解析器当前文件的保存的编码格式,让解析器用GB2312编码来解析此文档 在方法中定义一个变量的时候不用var的情况 function f1(){ x=100; alert('方法内X:'+x); } alert
js中我定义一个var变量,在页面想显示出来,用什么东西显示比较好,var比较长还有空格
js中我定义一个var变量,在页面想显示出来,用什么东西显示比较好,var比较长还有空格 2012-11-22 23:29476126132  分类:JavaScript | 浏览 890 次 分享到: 2012-11-23 12:07 提问者采纳 放一个 测试用的 div层 js这样写 document.
javascript中使用var和不使用var定义变量的区别
    听人问起这个问题,自己一时答不上来,便查找资料总结了一下。    JavaScript中使用var和不使用var定义变量主要有两个区别:    1.var a = 1; function aaa(){ b = 2; }; console.log(a);//1 //console.log(b);//b if not defined aaa(); console.log(b);//2代码...
javascript定义全局变量的时候有var和没有var的区别
首先讨论的范围是在浏览器端的javascript 在平常我们定义一个全局的变量 代码如下: var x = 2; y = 3; console.log(x); //2 console.log(y); //3 console.log(window.x);//2 console.log(window.y);//3 复制代码 可以看出x,y都挂在window下,成为window
javascript 变量的声明与初始化
其实这是个很基础的问题 ,但也反应了代码风格其实很重要。
js变量的命名,定义规则
一、变量的定义 1、变量是用于存储信息的"容器",是命名的内存空间,可以使用变量名称找到该内存空间。 2、JavaScript 的变量是松散类型(弱类型)的,所谓松散类型就是用来保存任何类型的数据。在定义变量的时候不需要指定变量的数据类型。 3、定义变量时要使用 var 操作符(var 是关键,表示的变量),后面跟一个变量名(变量名是标识符)。 格式:var 变量名;   4、变量定义完
python web py入门(20)- javascript的变量
在前面我们已经知道在计算世界里,所有东西都是数据。但是有三种数据是经常使用的,这种分类也叫做数据类型,如下:1. 你的名字是一种数据2. 你的年龄是一种数据3. 你的分数也是一种数据这三种数据可以表示你在学校里当学生的属性。它们之间有什么不同吗?比如你的名称常常由字符串组成,比如汉字或者英语字母,因而称为字符串类型;你的年龄一般是整数类型,比如20岁,31岁;但你的分数可以是整数,但一般会保留到小...
javaScript中变量和数组
全局变量和局部变量 全局变量 javascript里面 1.      在函数外部声明的变量 2.      在函数内部不使用”var”声明的变量(函数调用之后起作用)   局部变量 在函数内部声明,前面没有var关键字 数组的使用 数组定义 许多变量,他们的名称和数据类型都一样。 数组的声明 var arr=[元素,元素,元素…]; var arr=new Array(
JavaScript某行代码执行的时候,用到了某个变量,但是这个变量根本找不到在哪里定义了(或者说看上去根本没有定义过)是怎么回事,是怎么执行的?
JavaScript某行代码执行的时候,用到了某个变量,但是这个变量根本找不到在哪里定义了(或者说看上去根本没有定义过)是怎么回事,是怎么执行的? 如下: 1)我通过jQuery给某个标签增加了一个click事件。 (function($) { $(“#button”).click(function() {           var $this = $(this);