单行的js 代码虽然简洁,但却不易维护,甚至难以理解,

但这却并不影响前端童鞋们编写简洁代码的热情,

一   , 生成随机ID

  

// 生成长度为10的随机字母数字字符串
Math.random().toString(36).substring(2);

解析 :

1 ,   Math.random()   生成一个 0 到 1  的 随机数  =》  number =  0.7147259888717723

2  ,   number.toString(36(可选))   本来number是没有toString方法的, number调用toString时

  number会先变成一个number类型的包装类 再调用  toString  方法   把 它 变成 字符串 ,

  toString(radix )  的 参数  可选  , 不填默认是  10   ,参数表示  先把  数字

  转化成  radix  进制    的 数字 , 然后再把结果转化成字符串

  number.toString(36(可选))     =》   str =  "0.pqa97fnmfz"

3  ,   substring(start, end)  是用来  截取 字符串的  ,从 start  开始  截  到  end  ,

  end 可以不传  就  截取到最后一位   ,    并返回截取出来的字符串 ,

  不改变原字符串

  str.substring(2)  从第二位开始截 =》  “pqa97fnmfz”

二   ,  每秒更新当前时间

  

setInterval(()=>document.body.innerHTML=new Date().toLocaleString().slice(10,18))

 解析

new Date().toLocaleString()  返回  =》   str =  "4/29/2019, 5:07:39 PM"

str.slice(10 ,18)从第10位开始截 到  18 位  =》   "5:07:39"

然后每秒更新  

三 ,   生成随机  16 进制  颜色 码   如  # ffffff

'#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');

解析 :

*  运算符  会先把  0xfffff 转换成 数字    =》  1048575

Math.floor(Math.random() * 0xffffff)    =>  number =  15235201

number.toString(36) 转化成 36 进制 的 字符串  =》 str = '92jk1'

padEnd 和 padStart 都是 用来补全字符串的  的 操作 区别是 在后面补

还是在前面补, 接受两个参数 ,  第一个参数 表示 补全 后 字符串的 长度 ,
第二个是 你 要补的字符串
str.padEnd(6, '0') 表示  在 str  后  补  0  , 补后 str 的 长度为 6

= >  '92jk10'  
就算 str.padEnd(6, '000') 结果还是 '92jk10' 因为长度固定了。 四 , 创建 特定长度 的 数组 并且 内容为 index
[...Array(3).keys()]

解析 :

  Array(3)  创建一个长度为 3 的 空数组   =》 [empty × 3]

  keys()   返回 一个 迭代器  可以用 for  ....of 遍历  里面的 value 就是  index

  .... 操作符 扒括号

 再 套上一个中括号   =》  [0, 1, 2]

五 ,  返回键盘 
// 用字符串返回一个键盘图形
(_=>[..."`1234567890-=~~QWERTYUIOP[]\\~ASDFGHJKL;'~~ZXCVBNM,./~"].map(x=>(o+=`/${b='_'.repeat(w=x<y?2:' 667699'[x=["BS","TAB","CAPS","ENTER"][p++]||'SHIFT',p])}\\|`,m+=y+(x+' ').slice(0,w)+y+y,n+=y+b+y+y,l+=' __'+b)[73]&&(k.push(l,m,n,o),l='',m=n=o=y),m=n=o=y='|',p=l=k=[])&&k.join`
`)()

这操作。。。。。。      嗯~ o(* ̄▽ ̄*)o      表示看不懂  !!!!!!

不过还是收藏了

摘自 掘金沸点   https://juejin.im/post/5cc55eb5e51d456e577f93f0


												

js 的 骚操作的更多相关文章

  1. JS 的骚操作

    一.强制类型转换 1.1string强制转换为数字 //可以用*1来转化为数字((实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用 a !== a 来判 ...

  2. js常用骚操作总结

    打开网址 window.open("http://www.runoob.com"); 判断是否为url var url = $("#url").val(); i ...

  3. vue开发中的"骚操作"

    前言 在与同事协作开发的过程中,见识到了不少"骚操作".因为之前都没用过,所以我愿称之为"高级技巧"! Vue.extend 在交互过程中,有个需求就是点击图标 ...

  4. 用Markdown写Html和.md也就图一乐,真骚操作还得用来做PPT

    前言 和这篇文章一样,我就是用Markdown写的.相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml.Html等,今天教大伙一招骚操作:用Markdown写PPT. 绝大多数朋友做 ...

  5. js实现动态操作table

     本章案例为通过js,动态操作table,实现在单页面进行增删改查的操作. 简要案例如下: <%@ page language="java" contentType=&quo ...

  6. nw.js如何处理拖放操作

    nw.js如何处理拖放操作 其实拖放(drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了. 首先我们看一下一个正常的页面,直接拖放 ...

  7. Numeral.js – 格式化和操作数字的 JavaScript 库

    Numeral.js 是一个用于格式化和操作数字的 JavaScript 库.数字可以格式化为货币,百分比,时间,甚至是小数,千位,和缩写格式,功能十分强大.支持包括中文在内的17种语言. 您可能感兴 ...

  8. 【软件编程】乐易贵宾VIP教程 - JS改写+网页操作系列教程

    JS改写系列教程: 1.MD5加密改写教程(爱拍网登录)2.解密如何快速找到真确的js加密算法3.多重MD5加密改写教程(5173登录)4.DZ论坛登录加密改写5.唯品会手机登录加密改写6.新浪微博密 ...

  9. JS实现 键盘操作

    JS实现 键盘操作: 详情可以去其逛网查看其API并下载,地址:http://craig.is/killing/mice <!DOCTYPE html PUBLIC "-//W3C// ...

随机推荐

  1. MognoDB3.4.2用户访问配置管理

    说在前面,官方文档似乎略有瑕疵. 说一下大规则:把绑定IP换成127.0.0.1IP之后,把security的authorization关闭掉做用户添加操作. 添加用户的方法必须是createUser ...

  2. 终端字形logo

    网上有很多的项目都有一个自己的字形logo,而我也在开发一个小的项目,也想要生成一个终端字形的logo,于是找到这款小工具,分享给大家:FIGlet “FIGlet is a program for ...

  3. 什么是Java Bean

    刚才看java中的注解,老是说注解引入的是个java Bean,那我就要问了,什么是Java Bean? 知乎引用:https://www.zhihu.com/question/19773379下杨博 ...

  4. 大型三甲医院医疗体检信息管理系统源码 PEIS 体检科软件 CS

    详情请点击查看 开发环境 :VS2008 + C# + SQL2000 功能介绍: 1:设置:操作员设置   系统功能设置    用户组权限设置  公告打印设置  数据字典设置  临床类型设置  体检 ...

  5. 拾人牙慧篇之——linux文件挂载,基于nfs的文件共享系统安装配置

    一.写在前面 最近需要把阿里云上的四台服务器的项目迁移到客户提供的新的项目中,阿里云的项目平时开发启动的时候知道有个nfs文件系统,表现就是后台管理系统通过freemarker生成的HTML文件,自动 ...

  6. java 通过HttpURLConnection与servlet通信

    研究了一天才搞清楚,其实挺简单的,在这里记录下,以便以后参考. 一.创建一个servlet项目 主要包括(WEB-INF)里面有classes文件夹.lib文件夹.web.xml文件. 将写好的ser ...

  7. IAAS-libvirt介绍。

    Libvirt介绍 Libvirt与hypervisor无关,其提供与多种操作系统虚拟化能力进行交互的API与工具库. Libvirt提供了一个通用稳定的抽象层,可以安全的操作物理机上的虚拟机,同时为 ...

  8. Math对象中比较常用的计算数学相关的三个方法

    Math类中提供了三个与取整有关的方法:ceil.floor.round,这些方法的作用与它们的英文名称的含义相对应,例如: ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil ...

  9. vue的生命周期钩子

    生命周期过程: new vue() :vue实例进行初始化,读取所有生命周期函数,并没有执行(不会调用) beforeCreate():创建前,读取属性,计算属性,添加set/get,读取watch ...

  10. MySQL 各类日志文件介绍

    日志文件 1.错误日志 ErrorLog 错误日志记录了MyQLServer运行过程中所有较为严重的警告和错误信息,以及MySQLServer每次启动和关闭的详细信息. 在默认情况下,系统记录错误日志 ...