js 产生随机字符 长度为n1+n2的字符串

JavaScript019

js 产生随机字符 长度为n1+n2的字符串,第1张

//产生随机标识符 前面以四个字母开头长度为n1+n2的字符串

function getUuid() {

var s = []

var s1 = []

var hexDigits1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

var hexDigits1length = hexDigits1.length

var hexDigits2 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

var hexDigits2length = hexDigits2.length

var n1 = 4//随机前端字母字符串长度

var n2 = 32//随机后端数字字母字符串长度

for(var i = 0i <n1i++) {

s[i] = hexDigits1.substr(Math.floor(Math.random() * (hexDigits1length - 1)), 1)

}

for(var i = 0i <n2i++) {

s1[i] = hexDigits2.substr(Math.floor(Math.random() * (hexDigits2length - 1)), 1)

}

////数组合并 a.push.apply(a,b)//将b合并到a中

s.push.apply(s, s1)//将s1合并到s中

//第3个位置插入-

s[2] = "-"

//第4个字符之后插入最多3个-

for(var i = 0i <3i++) {

s[Math.floor(Math.random() * (n1 + n2 - 5)) + 4] = "-"

}

let uuid = s.join("")

return uuid

}

JavaScript中,数值类型有两种表示方式:直接量和Number对象。这两种表示方式在大多数情况下是等价的,但是它们有一些重要的区别。

直接量(也称为原始值)表示一个数值常量,它直接写在代码中,例如10或者3.14。直接量是不可变的,它们是原始类型的值,不能调用方法,只能进行基本的运算。

Number对象表示一个数值,但是它是一个对象,而不是原始类型的值。Number对象可以调用方法来执行更高级的操作,比如转换为字符串、比较大小等。但是,由于Number对象是可变的,所以它的性能要比直接量差一些。

所以,通常来说,我们应该优先使用直接量来表示数值,只有在需要使用Number对象的方法时才使用Number对象。

对于上面的例子,n1和n2两者都可以调用toString()方法来将数值转换为字符串,但是n2是一个Number对象,所以它可以调用更多的方法。例如,使用Number.isInteger()方法检查一个数值是否为整数时,n1是直接量,所以它可以直接传入`Number

另外,由于Number.isInteger()方法是Number对象的一个静态方法,而不是实例方法,所以它无法直接在Number对象实例上调用。例如,在上面的例子中,Number.isInteger(n1)返回true,因为n1是一个直接量,它可以直接传入Number.isInteger()方法;而Number.isInteger(n2)返回false,因为n2是一个Number对象实例,而不是直接量,它不能直接传入Number.isInteger()方法。

总之,直接量和Number对象两者都可以表示数值,但是它们有一些重要的区别,应该根据实际情况来选择使用哪种方式。通常来说,我们应该优先使用直接量来表示数值,只有在需要使用Number对象的方法时才使用Number对象。

一般事件onclickIE3、N2鼠标点击时触发此事件

ondblclickIE4、N4鼠标双击时触发此事件

onmousedownIE4、N4按下鼠标时触发此事件

onmouseupIE4、N4鼠标按下后松开鼠标时触发此事件

onmouseoverIE3、N2当鼠标移动到某对象范围的上方时触发此事件

onmousemoveIE4、N4鼠标移动时触发此事件

onmouseoutIE4、N3当鼠标离开某对象范围时触发此事件

onkeypressIE4、N4当键盘上的某个键被按下并且释放时触发此事件.

onkeydownIE4、N4当键盘上某个按键被按下时触发此事件

onkeyupIE4、N4当键盘上某个按键被按放开时触发此事件