ES6 数值扩展和模块化

数值扩展

Number.EPSILON

  • Number.EPSILON是JavaScript表示的最小精度
  • EPSILON属性的值接近与 2.220446049250313080472633361816E-16
  • 可以用该属性去解决因浮动数之间的计算误差而产生的判断不精准
function equal(a ,b){
    Math.abs(a - b) < Number.EPSILON ? true : false;
}
0.1 + 0.2 === 0.3 //false
equal(0.1 + 0.2, 0.3)//true

Number.isFinite

  • 检测一个数值是否为有限数
console.log(Number.isFinite(100));//true
console.log(Number.isFinite(100 / 0));//false
console.log(Number.isFinite(Infinity));//false

Number.isNaN

  • 检测一个数值是否为NaN
console.log(Number.isNaN(123));//false
console.log(Number.isNaN(NaN));//true

Number.parseInt 和Number.parseFloat

  • 在ES6中将parseInt和parseFloat这两个单独的函数放到Number下作为两个方法,方便查阅文档
  • Number.parseInt ()可以将字符串转为一个整数
  • Number.parseFloat()可以将字符串转为一个浮点型数
console.log(Number.parseInt("123pxfff"));//123
console.log(Number.parseFloat("3.141343pxsfsfs"));//3.141343

Number.isInteger

  • 判断一个数是否为整数
console.log(Number.isInteger(10));//true
console.log(Number.isInteger(2.5));//false

Math.trunc

  • 将数字的小数部分抹除掉
  • 在负数部分可以和Math.floor进行对比一下
//Math.trunc
console.log(Math.trunc(2.55));//2
console.log(Math.trunc(-2.34));//-2
console.log(Math.trunc(-2.89));//-2
// Math.floor
console.log(Math.floor(-2.34));//-3
console.log(Math.floor(-2.89));//-2

Math.sign

  • 判断一个数到底为正数 负数 还是零
console.log(Math.sign(12));//1
console.log(Math.sign(0));//0
console.log(Math.sign(-12));//-1

模块化

  • 模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来

模块化的好处

  • 防止命名冲突
  • 代码复用
  • 高维护性

模块化语法

  • 模块功能主要由两个命令构成:export和import
  • export命令用于规定模块的对外接口
  • import命令用于输入其他模块提供的功能

三种模块暴露数据语法方式

分别暴露:
先创建一个t1.js文件,然后将要暴露的数据前面添加export

export let myName = "心猿";
export let myfunc = () =>{
    console.log("我是外部文件引进来的!");
}

然后创建另一个index.html文件或者t2.js文件,使用import导入t1.js的数据
html:

    <script type="module">
        import * as outName from "./t1.js";
        console.log(outName);
        console.log(outName.myName);
        outName.myfunc();
    </script>

js文件:

import * as outName from "./t1.js";
console.log(outName);
console.log(out.myName);
outName.myfunc();

在这里插入图片描述
html效果如下:
在这里插入图片描述

统一暴露:

let myName = "心猿";
let myfunc = () => {
    console.log("我是外部文件引进来的!");
}

// 统一暴露
export {myName, myfunc}

在这里插入图片描述

默认暴露:

// 默认暴露
export default {
    myName: "心猿",
    myfunc(){
        console.log("我是外部文件引进来的!");
    }
}

通过默认暴露的方式,访问数据需要在加上default
html:

    <script type="module">
        import * as outName from "./t1.js";
        console.log(outName);
        console.log(outName.default.myName);
        outName.default.myfunc();
    </script>

在这里插入图片描述

引入模块数据语法

  1. 通用的导入模式
import * as outName from "./t1.js";
  1. 结构赋值形式
//分别暴露、统一暴露
import {myName, myfunc} from "./t1.js";
// as修改重名
import {myName as myName2, myfunc} from "./t1.js";
//针对默认暴露
import {default as outName} from "./t1.js";
  1. 简便形式 针对默认暴露
import outName  from "./t1.js";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值