JavaScrpt --- es5实现ES6的Number扩展(部分)
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扩展(部分)相关推荐
- 夯实基础,彻底掌握js的核心技术(四):ES5、ES6对象方法详解
ES5 Object 对象方法扩展 ES5给Object扩展了一些静态方法,常用的2个 Object.create(prototype,[descriptors]) 作用:以指定对象为原型创建新的对象 ...
- typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)
提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...
- 谈谈ES5和ES6的区别
我们都知道JavaScript是由三部分组成: 1. ECMAScript(核心):规定了语言的组成部分=>语法.类型.语句.关键字.保留字.操作符.对象 2. BOM(浏览器对象模型): 支持 ...
- ES5、ES6、ES7、ES8
ES5.ES6.ES7.ES8 ES5 Strict Mode 在JS文件或是函数的顶部添加"use strict"即可启用严格模式. "use strict" ...
- JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6
Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...
- 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 ...
- js基础面试题整理(包含ES5,ES6)
写一下 Javascript 的原始类型 原始类型:number,string,boolean,null,undefined 引用类型:object.里面包含function,Array,Date T ...
- ES5、ES6和ES2015有什么区别?
ES5.ES6和ES2015有什么区别? ES5指的是ECMScript的第五个版本,发布于2009年,是目前最广泛使用的JavaScript版本. ES6是ECMScript的第六个版本,也成为ES ...
- typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)
上一文已经写了es5,es6等类的定义,所以本章主要写es5和es6的继承,由于es6的继承和ts的继承如出一辙,只是加了类型定义而已,所以ts的继承稍微写下,不会太详细. 文章目录 es5继承 原型 ...
最新文章
- Speed4Web 绿色纯净版
- 工具用途_机械加工中研磨加工刀具(砂轮)﹑治工具及其用途
- opencv镜像_DX200操作要领—PAM与镜像平移变换(三十八)
- 浅析无字符数字构造webshell
- RabbitMQ之Exchange分类
- 【Git】git stash应用场景
- ajax设置自定义请求头信息
- 92款jQuery图片展示/幻灯插件开源软件
- 【Flink】Flink 不支持部分 task 结束后进行 checkpoint
- 【软件项目管理】滨江学院 李振宏 软件项目管理 试卷考点知识点整理
- 会看源码,你将比98.3%的人更容易拿到百度、阿里、腾讯、字节跳动等大公司的高薪Offer!请看这几个公众号!...
- 如何使用mp3转换器将wav转换成mp3格式
- kd树的根节点_多维空间分割树--KD树
- JS Enter键实现Tab键功能,回车键实现tab功能
- python shutil删除_Python标准库shutil中用于删除文件夹的方法是( )
- 少时诵诗书少时诵诗书sss
- 自然语言处理概述 NLP基本流程
- 今日学习——冒泡排序
- 【数据库系统】数据库编程
- FusionCharts 的刷新