记录JS一些比较实用便捷的小技巧(三)

1.日历获取过去7天的日期等

[...Array(7).keys()].map(day=>new Date(Date.now()-86400000*day).getDate());//里面的getDate()可以根据实际需要变其他日期方法
//获取当月全部日期
let year = new Date().getFullYear();
let month = new Date().getMonth()+1;
let daynum = new Date(year,month,0).getDate();//在new Date里设置0是当月,上月是-1,获取对应月的天数
let dayArray = [];
for(let i=1;i<=daynum;i++){
      dayArray  = [...dayArray ,`${year}-${('0'+month).slice(-2)}-${('0'+i).slice(-2)}`]
}//["2019-05-01", "2019-05-02", "2019-05-03", "2019-05-04", "2019-05-05", "2019-05-06",...]日期的格式也可以自定

2.uuid生成
有时会碰到后台要前端生成一个uuid给他,那只能自己生成啦

 let d = new Date().getTime();
 const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
            var r = (d + Math.random() * 16) % 16 | 0;
            d = Math.floor(d / 16);
            return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
        });
简单一点也有这种用法,看具体了:
Math.random().toString(36).substring(2);

3.获取url的查询参数

假设url是https://www.baidu.com/?title=chouchou&name=super
let q ={};
location.search.replace(/([^?&]+)=([^&]+)/g,(_,k,v)=>q[k]=v);
console.log(q)//{title: "chouchou", name: "super"}

正则含义


reg.png

4.数组混淆

let arr=[1,2,3,4,5];
let f = (arr)=>arr.slice().sort(()=>Math.random()-0.5);
console.log(f(arr))

5.生成随机的十六进制颜色代码

'#'+Math.floor(Math.random()* 0xffffff).toString(16).padEnd(6,'0');
还有种好理解的方法
let color = "";
let str = "0123456789abcdef";
let length = str.length + 1;
for (let j = 0; j < 6; j++) { //随机改变每个数字的颜色
            color += str.substr(parseInt(Math.random() * length), 1); //取颜色(循环,每次提取一位,进行拼接组成6为颜色的值)
        }
color='#'+color;

6.数据类型的检验
一.typeof:返回结果包括 number,boolean,string,symbol,object,undefined,function, 因此不能判断null,array

typeof [1,2,3]//object
typeof null/object
typeof new Date()/object
typeof new RegExp()/object

二.instanceof:判断A是否为B的实例,但是因为是实例判断,就会造成字面量方式和实例方式的结果不一致,另外也不能判断null和undefined

[] instanceof Array;//true,现在es6也可以直接用Array.isArray([1,2,3])来判断
new Date() instanceof  Date;//true
new RegExp() instanceof  RegExp;//true
1 instanceof  Number;//false
new Number(1) instanceof  Number;//true

三.判断null和undefined:

null ===null//true
undefined ===undefined//true

四.终极方法Object.prototype.toString.call(),效果如下~

Object.prototype.toString.call('') ;   // [object String]
Object.prototype.toString.call(1) ;    // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean]
Object.prototype.toString.call(undefined) ; // [object Undefined]
Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function]
Object.prototype.toString.call(new Date()) ; // [object Date]
Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
Object.prototype.toString.call(new Error()) ; // [object Error]
Object.prototype.toString.call(document) ; // [object HTMLDocument]
Object.prototype.toString.call(window) ; //[object global] window是全局对象global的引用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容

  • ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前...
    语目阅读 3,888评论 0 3
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,028评论 0 2
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,113评论 0 21
  • 2018年10月4日 礼拜四 广东 晴天 许多人就像“垃圾人”。他们到处跑来跑去,身上充满了负面垃圾,有时候,我们...
    海儿的阅读 287评论 0 3
  • 对“宽容”这个词,我们谁都不陌生,而是太熟悉了,熟悉得有些陌生,甚至要忘记了。可生活中又时时少不了它的影子。 外出...
    刘金_阅读 1,710评论 2 3