ES6对数值对象Number进行了扩展,

// ES实现Number.isFinite()
(function (global) {var global_isFinite = global.isFinite;Object.defineProperty(Number, 'isFinite', {value: function isFinite(value) {return typeof value === 'number' && 'global_isFinite(value);},configurable: true,enumberable: false,writable: true});
}) (this);
// ES5实现Number.isNaN()
(function (global) {var global_isNaN = global.isNaN;Object.defineProperty(Number, 'isNaN', {value: function isNaN(value) {return typeof value === 'number' && global_isNaN(value);},configurable: true,enumerable: false,writable: true});
}) (this);
// ES5实现Number.isInterger()
(function (global) {var floor = Math.floor,isFinite = global.isFinite;Object.definePropery(Number, 'isInteger', {value: function isInteger(value) {return typeof value === 'number' &&isFinite(value) &&floor(value) === value;},configurable: true,enumerable: false,writable: true});
}) (this)
// ES5实现Number.isSafeInteger
var MIN_SAFE_INTEGER = -Math.pow(2, 53);
var MAX_SAFE_INTEGER = Math.pow(2, 53);
Number.isSafeInteger = function (n) {return (typeof n === 'number' &&Math.round(n) === n &&Number.MIN_SAFE_INTEGER <= n &&n <= Number.MAX_SAFE_INTEGER);
}
// Math.trunc: 除去一个数的小数部分
Math.trunc = Math.trunc || function (x) {return x < 0 ? Math.ceil(x) : Math.floor(x);
};
// Math.sign:判断一个数是正数、负数,还是零,或非数字
Math.sign = Math.sign || function (x) {x = +x;    // 转换成一个数if (x === 0 || isNaN(x)) {return x;}return x > 0 ? 1: -1;
};
// Math.cbrt: 计算一个数的立方根
Math.cbrt = Math.cbrt || function (x) {var y = Math.pow(Math.abs(x), 1/3);return x < 0 ? -y : y;
};

参考 《ES6 标准入门》P86~P96

JavaScrpt --- es5实现ES6的Number扩展(部分)相关推荐

  1. 夯实基础,彻底掌握js的核心技术(四):ES5、ES6对象方法详解

    ES5 Object 对象方法扩展 ES5给Object扩展了一些静态方法,常用的2个 Object.create(prototype,[descriptors]) 作用:以指定对象为原型创建新的对象 ...

  2. typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)

    提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...

  3. 谈谈ES5和ES6的区别

    我们都知道JavaScript是由三部分组成: 1. ECMAScript(核心):规定了语言的组成部分=>语法.类型.语句.关键字.保留字.操作符.对象 2. BOM(浏览器对象模型): 支持 ...

  4. ES5、ES6、ES7、ES8

    ES5.ES6.ES7.ES8 ES5 Strict Mode 在JS文件或是函数的顶部添加"use strict"即可启用严格模式. "use strict" ...

  5. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

  6. react-native ES5与ES6写法对照表

    转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/react-native-es5-and-es6-writing-tabl ...

  7. js基础面试题整理(包含ES5,ES6)

    写一下 Javascript 的原始类型 原始类型:number,string,boolean,null,undefined 引用类型:object.里面包含function,Array,Date T ...

  8. ES5、ES6和ES2015有什么区别?

    ES5.ES6和ES2015有什么区别? ES5指的是ECMScript的第五个版本,发布于2009年,是目前最广泛使用的JavaScript版本. ES6是ECMScript的第六个版本,也成为ES ...

  9. typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)

    上一文已经写了es5,es6等类的定义,所以本章主要写es5和es6的继承,由于es6的继承和ts的继承如出一辙,只是加了类型定义而已,所以ts的继承稍微写下,不会太详细. 文章目录 es5继承 原型 ...

最新文章

  1. Speed4Web 绿色纯净版
  2. 工具用途_机械加工中研磨加工刀具(砂轮)﹑治工具及其用途
  3. opencv镜像_DX200操作要领—PAM与镜像平移变换(三十八)
  4. 浅析无字符数字构造webshell
  5. RabbitMQ之Exchange分类
  6. 【Git】git stash应用场景
  7. ajax设置自定义请求头信息
  8. 92款jQuery图片展示/幻灯插件开源软件
  9. 【Flink】Flink 不支持部分 task 结束后进行 checkpoint
  10. 【软件项目管理】滨江学院 李振宏 软件项目管理 试卷考点知识点整理
  11. 会看源码,你将比98.3%的人更容易拿到百度、阿里、腾讯、字节跳动等大公司的高薪Offer!请看这几个公众号!...
  12. 如何使用mp3转换器将wav转换成mp3格式
  13. kd树的根节点_多维空间分割树--KD树
  14. JS Enter键实现Tab键功能,回车键实现tab功能
  15. python shutil删除_Python标准库shutil中用于删除文件夹的方法是( )
  16. 少时诵诗书少时诵诗书sss
  17. 自然语言处理概述 NLP基本流程
  18. 今日学习——冒泡排序
  19. 【数据库系统】数据库编程
  20. FusionCharts 的刷新

热门文章

  1. 5错误怎么办_“选择不对,一生白费”:如果选错了,该怎么办?记住这两句话...
  2. opencv相机标定和人头姿态估计案例
  3. 显示mnist手写数字
  4. Python缩进问题
  5. final+static
  6. 华为架构师8年经验谈:从单体架构到微服务的服务化演进之路
  7. laravel 分页
  8. 在原生js中的事件监听方法
  9. BZOJ3795 : 魏总刷DP
  10. 九度 1470 调整方阵