生成一个';随机样式';在JavaScript中
我想编写一个返回新文本样式的函数(生成一个';随机样式';在JavaScript中,javascript,Javascript,我想编写一个返回新文本样式的函数(none、bold、italic或bold和italic)。 这是我的密码: function generateRandomStyle(){ var random = Math.floor(Math.random() * 4); switch(random){ case 0: return; break; case 1: var i = doc
none
、bold
、italic
或bold
和italic
)。
这是我的密码:
function generateRandomStyle(){
var random = Math.floor(Math.random() * 4);
switch(random){
case 0:
return;
break;
case 1:
var i = document.createElement("i");
return i;
break;
case 2:
var b = document.createElement("b");
return b;
break;
case 3:
var b=document.createElement("b");
var i = document.createElement("i");
b.appendChild(i);
return b;
break;
}
}
我的问题是,当我将此函数赋给变量时(例如var\u style=generateRandomStyle();
)
我有时会遇到这样的错误:
TypeError:\u样式未定义
我怎样才能解决这个问题?我想它来自switch语句的最后一种情况。简单地说,
random
将在某个点返回0,而在switch
中不会处理任何结果。如果将其设置为Math.floor(Math.random()*3)+1代码>问题已解决。或者,或者为案例0:
此外,如果无法访问break
语句,则可以安全地取出它们
function generateRandomStyle(){
var random=Math.floor(Math.random()*3)+1;
console.log(随机)
开关(随机){
案例0:
返回;
案例1:
var i=document.createElement(“i”);
返回i;
案例2:
var b=document.createElement(“b”);
返回b;
案例3:
var b=document.createElement(“b”);
var i=document.createElement(“i”);
b、 儿童(一);
返回b;
}
}
console.log(generateRandomStyle())
使用以下命令:
var random = Math.floor(Math.random() * 3) + 1;
G0dsquad已经指出了基于0的值的问题
您必须解决的另一个问题是,floor
和random
实际上从未达到最大值。这由其规范定义:
随机的
Random永远不会返回最大值
函数的作用是:返回[0,1]范围内的浮点伪随机数,即从0(包括0)到1(不包括1)(不包括1),然后将其缩放到所需的范围
地板
Floor将永远不会返回大于输入值的值
Math.floor( 2.95); // 2
函数的作用是:返回小于或等于给定数字的最大整数
希望这能有所帮助。您在赋值语句或尝试使用值时出现错误?请注意,案例0不返回任何内容。1.您不需要在返回后中断。请思考当random
==0时返回的内容。我在尝试使用值时出现错误。它来自开关的第一个案例,您在该案例中实际上,这似乎解决了我的问题。但是,我的函数从未生成过一个“”这是一个奇怪的问题,请注意为案例3返回的
:在示例中似乎返回了嵌套元素?是的,而且,它从未生成“非样式”。在原始代码中,您处理0,但不返回任何内容。您需要eturn某物以允许您没有样式,或处理未定义的
。您可能只需要返回一些其他指示符,以便在应用样式之前拦截该指示符。如上所述,您可以使用此变量执行您希望的操作,例如,仅在样式未定义时处理样式。这几乎不是答案。您需要解释此代码解决问题的原因,以及它与OP代码的区别。