今天在分析一个jQuery插件源码的时候,发现了一个奇怪的函数。

这个函数的目的是为数字补零,如传入7,输出07,传入12输出12。由于是对时间补零,只截取后两位。

// add leading zeros
var pad = function(x){return (1e15+""+x).slice(-2)};

首先1e15是什么意思?

也不是十六进制表示法。

不管三七21,直接F12打开命令窗口,执行下看看,结果是1后面有15个0.

原来1e15是科学计数法,表示1乘以10的15次方。

var y=123e5; //
var z=123e-5; // 0.00123

+"" 是将数字转换为字符串。直接对数字进行slice截取是会报错的。

这个函数的目的是前补零,

关于补0的JS函数,stackoverflow有人提问过

how-to-output-integers-with-leading-zeros-in-javascript

本人总结出来几种方法:

要点:
对数字前补零,首先要将数字转换为字符串 // 传统做法
function pad(num, size) {
var s = num+"";
while (s.length < size) s = "0" + s;
return s;
} // 简洁的做法
function pad(num, size){
return ('000000000' + num).substr(-size);
} // 优雅的做法 修复后的
function pad(a,b){
// 1e15 即1后面15个0
return (a+"").length > b ? a : (1e15+a+"").slice(-b)
} // 扩展Number对象
Number.prototype.pad = function(size) {
var s = String(this);
if(typeof(size) !== "number"){size = 2;} while (s.length < size) {s = "0" + s;}
return s;
} 9.pad(); //returns "09"
7.pad(3); //returns "007"

那么问题来了,e为什么是15呢?

一个奇怪的JS函数的更多相关文章

  1. 一个短小的JS函数,用来得到仅仅包含不重复元素的数组

    下面函数主要利用了数组的sort方法,之后的逻辑是看最后一个元素是否等于要添加的元素,如果不是就往尾后加. 这个做法的效率等于sort方法的效率,还过得去. 代码: <!DOCTYPE HTML ...

  2. underscore.js 一个强大的js函数库

    Underscore提供的100多个函数,主要涉及对Collection.Object.Array.Function的操作: Collections(集合) each, map, reduce, re ...

  3. 一个简单的JS函数,用于判断文本是否数字

    /****************************************************** 判断是否是数字(整数,小数均可,不包括负数)* 2014年10月10日22:38:19* ...

  4. javascript笔记——点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数

    页面跳转同时执行js代码$(function(){});url参数传递 标题的前半部分其实不必赘述,按钮也可以换成超链接.. 假设是需要在A页面上的一个按钮,点击后跳转到B页面,传一些参数后且并B页面 ...

  5. 分享一个好用的函数吧,将js中的对象转成url参数

    JavaScript&jQuery获取url参数方法 这个函数呢是自己在写基于Vue+ElementUI管理后台时用到的,,下面列出来两种使用方式: 最普通的,封装一个js函数 /** * 对 ...

  6. js函数声明外面使用小括号括起来再接一个小括号的写法

    js函数声明外面使用小括号括起来再接一个小括号的写法 (function(){})(); (function(){}()); !function(){}(); 总结ps:意思将函数声明变成,直接执行的 ...

  7. js 函数覆盖的问题

    今天遇到奇怪问题是,一个html里面引入一个新的js进来后,原来的按钮点击后(假设触发onclick函数)在某个地方卡住了,不往下执行了.—— 之前都是好好的. 调试发现,在onclick中间某一处调 ...

  8. js 函数闭包内部返回函数体调用方法难点解答

    今天在网上,看到一篇关于js函数难点的文章,js函数的一些难点.在那上面提了一下,关于js函数返回另一个函数的问题,并附上了一道面试题: var add = function(x){ var sum ...

  9. 奇怪的JS

    有的时候发现JS是一门很高深的语言,不是我等俗人可以学会,没有private,没有public不说,居然连Class都没有,这个世界就是这样,有的东西你不一定非要想通,也不一定非要剖根问底,有的时候你 ...

随机推荐

  1. 【[TJOI2017]异或和】

    这道题挺神仙的,毕竟这个异或是需要进位的 看到区间和我们很自然的就想到了前缀和 于是处理一下前缀和答案就变成了这个样子 \[⊕\sum_{i=1}^n\sum_{j=1}^{i}pre_i-pre_{ ...

  2. 5 个强大的 HTML5 API

    HTML5提供了一些非常强大的JavaScript和HTML API,来帮助开发者构建精彩的桌面和移动应用程序.本文将介绍5个新型的API,希望对你的开发工作有所帮助. 1.  全屏API(Fulls ...

  3. lwip BUG ,导致 系统 死机

    pcb->snd_queuelen >= pbuf_clen(next->p) sys_arch_assert: in ..\..\User\lwip\src\core\tcp_in ...

  4. 将硬件规定的通信协议用Lua实现(涉及到很多Lua通信的数据转换)

    1:这次处理的是大唐的gps通信协议,先简单介绍一下他规定的通信规则: 信息结构: 传输说明: 信息结构中的各个字节书写时都是以十六进制标识,两位数组成.传输时,SOI和EOI(SOI=7EH,EOI ...

  5. iOS中UITextField常用设置和方法

    //初始化textField并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]; // ...

  6. 关于 web.config impersonate 帐号模拟

    1.模拟 IIS 验证的帐户或用户 若要在收到 ASP.NET 应用程序中每个页的每个请求时模拟 Microsoft Internet 信息服务 (IIS) 身份验证用户,必须在此应用程序的 Web. ...

  7. 浅析中国剩余定理(从CRT到EXCRT))

    前置知识 1. a%b=d,c%b=e, 则(a+c)%b=(d+e)%b(正确性在此不加证明) 2. a%b=1,则(d\(\times\)a)%b=d%b(正确性在此不加证明) 下面先看一道题(改 ...

  8. MySQL----MySQL数据库入门----第二章 数据库和表的基本操作

    2.1 数据库和数据库表的创建 ①数据库的创建(在数据库系统中划分一块存储数据的空间): create database 数据库名称 [charset 字符集]: ②数据库表的创建 use 数据库名 ...

  9. JSP声明和JSP指令

    JSP声明 JSP 声明用来定义程序中使用的实体,如变量.方法和类. 语法格式:<%!  变量/方法/类的声明  %> 例如: <%! String str="欢迎&quo ...

  10. HIve数据存储

    表 Table 内部表 Partition 分区表 External Table 外部表 Bucket Table 桶表 内部表 分区表 parttion对应于数据库中的Partition列的密集索引 ...