2018-12-25 js生成随机字符串

2018-12-25  本文已影响0人  rub1cky

常规写法

function randomString(length,addSymbol){
    str='1234567890ABCDEFGHIGKLMNOPQRSTUVWSYZabcdefghijklmnopqrstuvwsyz';
    symbol='-/:;()$&@.,?!_\|~<>€£¥•[]{}#%^*+=';
    txt = '';
    if(addSymbol) str = str+symbol;
    if(isNaN(length)) return false;
    for(i = 0; i < length; i++){
    random = parseInt(Math.random()*(str.length+1),10);
    txt += str.split("")[random];
    }
    return txt;
}

在backbone.localstorage里发现另外一种写法

function s4() {
  const rand = (1 + Math.random()) * 0x10000;
  return (rand | 0).toString(16).substring(1); 
 # 单竖杠“|”就是转换为2进制之后相加得到的结果
}

2.undefined == void ()

在ES5之前,window下的undefined是可以被重写的,于是导致了某些极端情况下使用undefined会出现一定的差错。
所以,用void 0是为了防止undefined被重写而出现判断不准确的情况。

注: ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。

3. Set 类似 python 的tuple

prototype:

method:

上一篇 下一篇

猜你喜欢

热点阅读