什么是(foo?bar:fobar)||xyz;在javascript中执行
What does ( foo ? bar: fobar) || xyz; do in javascript?
In使用JavaScript获取图像的实际宽度和高度?(在Safari/Chrome中(,一个声称聪明的解决方案是关于如何计算图像的实际大小。
var t = new Image();
t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src;
我想弄清楚第二排是干什么的。我知道我想要使用的源,因此简单地声明了它。这没有产生任何其他属性,如t.width.
与相同
if(foo){
if(bar) {
bar;
}
else {
xyz;
}
else {
if(fobar) {
fobar;
}
else {
xyz;
}
}
在您的真实生活中,由于fobar
是错误的
if(foo){
if(bar) {
bar;
}
else {
xyz;
}
else {
xyz;
}
所以
if(foo && bar) {
bar;
}
else {
xyz;
}
首先,我们检查哪里有类似getAttribute的东西,一些属于img_element的字段/方法。事实上,严格地说,这个检查是不够的,因为getAttribute可以是任何东西,当我们检查它是否等于true时,我们试图调用getAttribute,就好像它是一个函数一样,这不是我们的检查所保证的。
但我们假设,如果某个对象有getAttribute,那么它就是一个DOM函数,而不是其他函数。在javascript中,这样的假设非常常见。
因此,我们首先检查img_element是否有getAttribute,如果有,我们检查"src"属性。这是一根真实的绳子,那么我们就到此为止了。如果没有,我们将进行最后一次尝试,直接检查.src。
您提供的代码片段实际上是关于我们应该首先检查属性,然后直接检查字段。
它将测试img_element.getAttribute ? img_element.getAttribute("src") : false)
是否等于false
以外的值
如果测试为false,则测试img_element.src
是否为false否则返回错误
var x = false,
y = x || true;
在这种情况下,y
将为真,它是OR
运算符,它检查第一个OR第二个(按此顺序(是否为true
;如果两者都是false
,则返回false。否则,返回第一个元素true
。
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 在javascript中,我正在使用EventListener,并且我得到了TypeError xyz = null
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 如何使用 JavaScript 配置 DocPad 集合?“警告:自定义集合 XYZ 不是有效的集合实例”
- JavaScript:TypeError:xyz 在调用函数时不是函数
- Javascript:根据用户输入添加到静态URL;添加#xyz
- 如何使用javascript在图形中表示XYZ轴
- style xyz.css"在一个javascript文件中意味着
- 什么是(foo?bar:fobar)||xyz;在javascript中执行
- 如何转换欧拉xyz欧拉zxy使用javascript