javascript-为什么这个if语句不起作用?

javascript-为什么这个if语句不起作用?,javascript,html,Javascript,Html,我正在测试一行代码,它检查一个变量是否为空。如果为空,则会弹出提示。但是,即使变量有一些内容,提示仍然会弹出 函数myFunction(){ 如果(site==null | | variable==undefined){ var site=prompt(“请输入有效的url:,“http://”); document.cookie='您的书签是:'+站点; 警报(unescape(document.cookie)); document.getElementById(“p1”).innerHTM

我正在测试一行代码,它检查一个变量是否为空。如果为空,则会弹出提示。但是,即使变量有一些内容,提示仍然会弹出

函数myFunction(){
如果(site==null | | variable==undefined){
var site=prompt(“请输入有效的url:,“http://”);
document.cookie='您的书签是:'+站点;
警报(unescape(document.cookie));
document.getElementById(“p1”).innerHTML='';
}
否则{
警惕(“是的,它在工作”);
}
}
按钮
这是因为变量未定义(我们没有在任何地方设置它),所以if块始终运行

此外,如果站点变量似乎在myFunction的范围内定义-

JavaScript函数中声明的变量将成为 作用

理想的方法是检查document.cookie而不是变量-

    function myFunction(){

 if (  document.cookie == '') { 
  var site = prompt("Please enter a valid url:", "http://");
  document.cookie = 'Your bookmark is: '+ site;
  alert(unescape(document.cookie));
    document.getElementById("p1").innerHTML = '<a class="txt2" href="' + site + '" target="myframe">'   + site + '</a>';
 }

 else { 
  alert('yey its working');
 }
}

myFunction();
函数myFunction(){
如果(document.cookie=''){
var site=prompt(“请输入有效的url:,“http://”);
document.cookie='您的书签是:'+站点;
警报(unescape(document.cookie));
document.getElementById(“p1”).innerHTML='';
}
否则{
警惕(“是的,它在工作”);
}
}
myFunction();

在您的if语句计算两个变量时选中它,只有其中一个变量必须为true,if语句才能为true

如果正在测试两个不同的变量,则您的
变量在哪里声明?无论如何,
站点
是在函数内部本地声明的,因此在计算
if
条件时,它将是
未定义的
,并且
=
认为
未定义的
空的
相等,因此
if
条件始终为真。谢谢帮助!