javascript print variable1 ||变量2

时间:2012-08-20 01:44:54

标签: javascript

我的文件扩展名为:

.doc or .docx

我想用这种方式链接:

document.getElementById("file").innerHTML = "View file sent <a href='../folder/filename" +
(what syntax do I need to add here if I wanted to print which extention file is exist on that folder)

在PHP中我们可以做到这一点

var1 = ".doc";
var2 = ".docx";

var1 ? var1 : var2;

JavaScript中的等效内容是什么?

5 个答案:

答案 0 :(得分:3)

JavaScript中的第三个运算符

JavaScript中存在第三个运算符

var var1=".doc";
var var2=".docx";

alert(var1 ? var1 : var2);​

证明:http://jsfiddle.net/gRMf2/

它可以像这样(jsfiddle):

alert(var1 ? var1 : var2);​

使用未定义的变量

但是,如果var1未定义,则会收到错误(证明:jsfiddle)。在这种情况下写这将解决问题(证明:jsfiddle):

alert(typeof var1 !== 'undefined' ? var1 : var2);​

答案 1 :(得分:3)

在javascript中,var1 || var2与php的var1 ? var1 : var2相同。

document.getElementById("file").innerHTML = "View file sent <a href='../folder/filename" + (var1 || var2);

答案 2 :(得分:2)

JavaScript无法访问文件系统。即使它确实如此,它也将是最终用户的本地文件系统。您需要检查文件是否存在于PHP(或您选择使用的任何服务器端语言)中。

答案 3 :(得分:1)

我不确定你在这做什么:

var1=".doc";
var2=".docx";

var1? var1 : var2;

这将始终返回“.doc”,因为无论您使用的是PHP还是Javascript,var1将始终评估为true。

<小时/> 听起来你可能会这样做:

// this function is from http://stackoverflow.com/a/3646923/1188942
function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}

var ext;
if (UrlExists("http://www.mywebsite.com/folder/file.doc"))
    ext = ".doc";
else
    ext = ".docx";

答案 4 :(得分:0)

这在Javascript中非常相似:

var doc = ".doc";
var docx = ".docx";
var ext = doc ? doc : docx;
alert(ext);