Javascript 如果语句不是';t工作正常

Javascript 如果语句不是';t工作正常,javascript,html,if-statement,null,Javascript,Html,If Statement,Null,我正在创建一个简单的网站,随机生成一个数字,并根据这个数字,它将相应地改变一段文字。我在测试空值,结果被解决了。然而,文本是否大写取决于它是在句子的开头还是结尾。我似乎无法解决这个问题。指向我的JSFIDLE的链接如下: 下面是我的代码片段: 。标题{ 文本对齐:居中; 字体系列:信使新; 颜色:绿色; 字体大小:粗体; } .按钮{ 宽度:250px; 高度:250px; 边框样式:实心; 边框颜色:红色; 边框宽度:5px; 边界半径:60px; 保证金:自动; 文本对齐:居中; 位置:

我正在创建一个简单的网站,随机生成一个数字,并根据这个数字,它将相应地改变一段文字。我在测试空值,结果被解决了。然而,文本是否大写取决于它是在句子的开头还是结尾。我似乎无法解决这个问题。指向我的JSFIDLE的链接如下:

下面是我的代码片段:

。标题{
文本对齐:居中;
字体系列:信使新;
颜色:绿色;
字体大小:粗体;
}
.按钮{
宽度:250px;
高度:250px;
边框样式:实心;
边框颜色:红色;
边框宽度:5px;
边界半径:60px;
保证金:自动;
文本对齐:居中;
位置:相对位置;
}
.按钮:悬停{
背景色:#7CFC000;
光标:指针
}
.按钮文本{
字体系列:信使新;
颜色:#9400D3;
字体大小:76px;
线高:140%;
}
.文本{
颜色:红色;
字体系列:Futura、Trebuchet MS、Arial、无衬线字体;
字号:21px;
}
#恭维{
文本对齐:居中;
字体系列:Candara、Calibri、Segoe、Segoe UI、Optima、Arial、无衬线字体;
颜色:#ffd400;
字体大小:40px;
字体大小:粗体;
利润上限:-20px;
}
.悬停{
宽度:108px;
高度:100px;
背景颜色:橙色;
边框样式:实心;
边框颜色:黑色;
边框宽度:5px;
文本对齐:居中;
利润上限:-30px;
左边距:1175px;
位置:绝对位置;
}
.文本块{
颜色:红色;
字体系列:Futura、Trebuchet MS、Arial、无衬线字体;
字体大小:16px;
字体大小:粗体;
}

恭维机器
恭维机器

为了传播节日欢乐,我在设计这个网站时考虑了一个目标。假设你已经输入了你的名字,按下下面的按钮将随机产生一个赞美。希望这个小实验 这会让你的一天充满活力

点击我!

var userName=prompt(“您叫什么名字?”); var恭维1=“祝您有愉快的一天”; var恭维2=“您为社会做出了贡献”; var 3=“永远做你自己”; var恭维4=“你是一个很棒的人”; var恭维5=“继续做好工作”; var恭维6=“永远不要停止相信自己”; var恭维7=“你很有幽默感”; var恭维8=“你应该为自己感到骄傲”; var 9=“永不停止尝试”; var恭维10=“你是赢家”; 函数inspire(){ var result=Math.random(); //此代码块在提示符中检查null、undefined和其他falsy值。 如果(用户名===null | |用户名===未定义的| |用户名====“”| |!用户名){
如果(0,您可以使用javascript
.toUpperCase()
方法将字符转换为大写

var userName = prompt("What is your name?");

var lower = username.toLowerCase();//changes to all characters at lower (because if input is aBcX then it changes to abcx)

var first = username.slice(0,1); //now outputs first character(a in abcx)
var finalname = username.replace(first,first.toUpperCase(first));//outputs Abcx
如果要大写整个单词,请使用:

string.toUpperCase()
string.charAt(0).toUpperCase() + string.slice(1)
如果只想大写单词的第一个字母,请使用:

string.toUpperCase()
string.charAt(0).toUpperCase() + string.slice(1)

其中
string
是要大写的文本。

您可以尝试使用else if block

例如:

if (0 <= result && result < 0.11) {
    document.getElementById("compliment").innerHTML = compliment1 + ", " + userName + "!";
} else if (0.11 <= result && result < 0.21) {
    document.getElementById("compliment").innerHTML = userName + ", " + compliment2 + ".";
} else if (0.21 <= result && result < 0.31) {
    document.getElementById("compliment").innerHTML = compliment3 + ", " + userName + ".";
};

if(0在赞美之前将你的名字大写
i、 e


在你改变innerHTMLs的if条件之前,它实际上是有效的,但是在一次“赞美”之后
用户名
不再为null或未定义,因此外部if块不会再次触发。如果每次都要重新分配
用户名
,可以使用布尔值检查当前的
用户名
是否由用户或代码实际选择

代码可能如下所示:

var userName=prompt(“您叫什么名字?”);
//我们仍然使用用户名检查,但我们将结果存储在一个变量中,以便用户每次单击按钮时都可以访问它
var generatedUsername=用户名===null | |用户名===未定义| |用户名===“”| |用户名;
var恭维1=“祝您有愉快的一天”;
var恭维2=“您为社会做出了贡献”;
var 3=“永远做你自己”;
var恭维4=“你是一个很棒的人”;
var恭维5=“继续做好工作”;
var恭维6=“永远不要停止相信自己”;
var恭维7=“你很有幽默感”;
var恭维8=“你应该为自己感到骄傲”;
var 9=“永不停止尝试”;
var恭维10=“你是赢家”;
函数inspire(){
var result=Math.random();
//如果此代码块是由代码选择的,则会更改用户名
if(generatedUsername){

如果(0尝试这样做。首先将名称更改为小写。然后选择要更改为大写的第一个字符,并替换第一个字符,然后使用第一个字符作为大写来获取名称

var userName = prompt("What is your name?");

var lower = username.toLowerCase();//changes to all characters at lower (because if input is aBcX then it changes to abcx)

var first = username.slice(0,1); //now outputs first character(a in abcx)
var finalname = username.replace(first,first.toUpperCase(first));//outputs Abcx

不完全是恭维,但请熟悉。问题是,所有内容都用小写硬编码,并使用CSS以大写开头。是的,我只是想了想,有没有一种简单的方法可以使用
.toUpperCase()将字符串的一部分改为大写
method?这似乎是我要找的,但我真的不知道该怎么写。你能给我一些示例代码吗?@mcblanoise是的,给我两分钟,我会更新我的答案;-)@McBlanoise完成了!非常感谢!这正是我想要的解决方案。这在这里没有用,因为这实际上不是问题所在。在这种情况下,使用else if将产生相同的结果。