What does var = var && "*" mean in Javascr
What does var = var && "*" mean in Javascript
我试图通过阅读它来解决一些混乱的代码,我做得很好,直到我遇到这个:
a = a && "*"
现在我对Javascript还是个新手,这些简短的不常见的Javascript代码对我来说还是很陌生的,这是我第一次遇到它们。
有人知道这是做什么的吗?我在javascript代码测试器中尝试过,它只是返回*,所以我不知道。
还有,如果有人知道我在哪里可以找到这些不常见的代码行做什么,那将非常有帮助。它们都被缩短了,就像这样和
a = a || b
(我知道那个人是干什么的)
但是如果有某种类型的javascript的名称或参考,我可以看,这将是非常有用的,我已经搜索谷歌几个小时了。
谢谢
如果a
为真,则将"*"
分配给a
。
如果a
为false,则保持不变。
&&
具有短路语义:复合表达式(e1) && (e2)
—其中e1
和e2
本身是任意表达式;—求值为
-
e1
,如果e1
在布尔上下文中计算为false;不e2
是对 -
e2
如果e1
在布尔上下文中求值为真
不是
意味着e1
或e2
以及整个表达式(e1) && (e2)
需要求值为真或假!
在布尔上下文中,根据规范,以下值计算为false
:
- 零
- 定义
- ± 0
- 南
- 假
- 空字符串
所有1其他值被认为是true
。
以上值被简洁地称为"假",其他值为"真"。
应用于您的示例: a = a && "*"
根据上述&&
的短路求值规则,如果a
为 false ,则表达式求值为a
,然后将其赋值给a
,即语句简化为a = a
。
如果a
为真值,则右边的表达式求值为*
,然后将其赋值给a
。
关于你的第二个问题: (e1) || (e2)
有类似的语义:
整个表达式的计算结果为:
-
e1
如果e1
为真 -
e2
如果e1
是假的
<一口> <一口> 1> 一口> 一口>
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 尝试过滤“;引号"基于'"类别“;使用流星&mongo
- 替换“&"与&体内
- 删除"在JavaScript控制台中打印数组时
- 什么是“-[1;平均值;if(!-[1,]&&!window.XMLHttpRequest)"
- Typeahead.js-特殊字符返回为“”&#230"等
- 使用“&"以及“+"在Querystring中
- 我怎么能在一个URL中有两种类型的参数,其中一种以“”开头#"而另一个以“0”开头&"并且不替
- "实体名称必须紧跟在'&'在实体引用中&”;
- 为什么var c=“;a“||"b”;返回c=“;a“;并且var c=“0”;a“&&"
- 排除将双引号(")转换为&#34;
- 编码"在Javascript onclick事件中被视为真正的双引号-为什么
- "闭合的“;属性异常返回“;window.open”;在JavaScript&歌剧
- Ajax帖子不发布“&"信
- 如何删除"在javascript中从我的Json
- 如何逃离或替换“&"在xml文件中使用jQuery
- 如何改变“;添加到购物车”"添加到愿望列表”&"将该产品“;单击时按钮边框颜色
- HTML"不转换为“;
- 为什么隔离范围"&"未按照angularJs的指示与controllerAs一起工作
- Angular JS&TypeScript-错误:ng:areq错误参数"自变量'XXXXXX