If / Else - 如果字符串不显示?

时间:2016-01-21 16:39:10

标签: javascript

我有提示输入字符串(“A Name”)。在if语句的if/else部分。当执行完成并输入一个字符串时,它会执行它应该执行的操作。

但是在实际声明if(x === null)中,单击cancel按钮时不会发生任何事情。我认为这是因为“y”变量下的内容。

JAVASCRIPT:

<script>
    var x = prompt('Enter a name');
    var y = x.charAt(0).toUpperCase() + x.slice(1).toLowerCase();

    if(x === null){
        document.getElementById("name_placement").innerHTML = "Welcome to My Site!";
    }
    else
    {
        document.getElementById("name_placement").innerHTML = "Hello " + y + ", Welcome To My Site";
    }

4 个答案:

答案 0 :(得分:1)

您的问题是当x的值为null时,正如您对取消按钮的情况所期望的那样,语句

var y = x.charAt(0).toUpperCase() + x.slice(1).toLowerCase();

会抛出异常 - 您无法在null上调用这些方法。该异常会破坏您的脚本并阻止它显示任何内容。检查您的error console

你必须将它移到你的else块中,只有当x是一个字符串时才执行它:

var x = prompt('Enter a name');
if (x === null) {
    document.getElementById("name_placement").innerHTML = "Welcome to My Site!";
} else {
    var y = x.charAt(0).toUpperCase() + x.slice(1).toLowerCase();
    document.getElementById("name_placement").innerHTML = "Hello " + y + ", Welcome To My Site";
}

答案 1 :(得分:0)

你可以这样做

var x = prompt('Enter a name');
var y = (x) ? x.charAt(0).toUpperCase() + x.slice(1).toLowerCase() : '';

alert(x === null ? "Welcome to My Site!" : "Hello " + y + ", Welcome To My Site");

如果您还希望它处理空字符串,例如,如果有人只推送确定而不输入任何字符,请将x === true更改为!x

var x = prompt('Enter a name');
var y = (x) ? x.charAt(0).toUpperCase() + x.slice(1).toLowerCase() : '';

alert(!x ? "Welcome to My Site!" : "Hello " + y + ", Welcome To My Site");

答案 2 :(得分:-1)

如果您输入任何内容''将返回空字符串x,如果您点击取消按钮null将等于if(x),所以在这两种情况下您都会获取if(x === null)值,您可以使用x代替if(x)来处理。

还操纵{{1}}块内的{{1}}值。

答案 3 :(得分:-1)

当用户按下“取消”

时,

x为空 当用户按下“确定”

时,

x为空字符串

问题是,当yx时,您无法设置null

&#13;
&#13;
 var x = prompt('Enter a name');
 if(x===null || x==='' )
 {
     document.getElementById("name_placement").innerHTML = "Welcome to My Site!";
 }
 else
 {
     var y = x.charAt(0).toUpperCase() + x.slice(1).toLowerCase();
     document.getElementById("name_placement").innerHTML = "Hello " + y + ", Welcome To My Site";
 }
         
&#13;
<div id="name_placement"></div>
&#13;
&#13;
&#13;