阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Math.trunc()

      Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分。

      语法

      Math.trunc(value)
      

      参数

      value

      任意数字

      返回值

      给定数字的整数部分

      描述

      不像 Math 的其他三个方法: Math.floor()Math.ceil()Math.round()Math.trunc() 的执行逻辑很简单,仅仅是删除掉数字的小数部分和小数点,不管参数是正数还是负数。

      传入该方法的参数会被隐式转换成数字类型。

      因为 trunc()Math 对象的静态方法,你必须用 Math.trunc() 来使用,而不是调用你创建的 Math 对象的一个实例方法(Math 没有构造函数)

      示例

      Math.trunc(13.37)    // 13
      Math.trunc(42.84)    // 42
      Math.trunc(0.123)    //  0
      Math.trunc(-0.123)   // -0
      Math.trunc("-1.123") // -1
      Math.trunc(NaN)      // NaN
      Math.trunc("foo")    // NaN
      Math.trunc()         // NaN
      

      Polyfill

      if (!Math.trunc) {
      	Math.trunc = function(v) {
      		v = +v;
      		if (!isFinite(v)) return v;
      		
      		return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0);
      		
      		// 返回:
      		//  0        ->  0
      		// -0        -> -0
      		//  0.2      ->  0
      		// -0.2      -> -0
      		//  0.7      ->  0
      		// -0.7      -> -0
      		//  Infinity ->  Infinity
      		// -Infinity -> -Infinity
      		//  NaN      ->  NaN
      		//  null     ->  0
      	};
      }
      
      

      或:

      if (!Math.trunc) {
      	Math.trunc = function(v) {
      		v = +v;
      		return (v - v % 1) || (!isFinite(v) || v === 0 ? v : v < 0 ? -0 : 0);
      	};
      }
      

      规范

      规范名称规范状态备注
      ECMAScript 2015 (6th Edition, ECMA-262)Math.truncStandard 
      ECMAScript Latest Draft (ECMA-262)Math.truncDraft 

      相关链接

      目录
      目录