ES6 学习笔记(数值)

本文深入解析JavaScript中的数字类型,包括二进制、八进制、十进制转换,Number对象的方法,如isFinite、isInteger、isNaN等,以及MAX_SAFE_INTEGER、MIN_SAFE_INTEGER等常量的使用。

0b 或 0B 表示二进制
0o 或 0O 表示八进制

0b111110111 === 503; // true
0o767 === 503; // true复制代码

严格模式下不许用前缀0,要用完整前缀0b等

(function(){
  console.log(0o11 === 011); // true
})()

(function(){
  'use strict';
  console.log(0o11 === 011); // Uncaught SyntaxError: Octal literals are not allowed in strict mode.
})()复制代码
Number

相关polyfill
将一些全局方法逐步迁移到各模块下,如parseInt、parseFloat。

  • Number()
    // 转十进制
    Number('0b111'); // 7
    Number('0o10'); // 8
    // total 19
    Object.getOwnPropertyNames(Number);复制代码
    • length
    • name
    • prototype
    • isFinite() 和全局的有所区别,全局的方法会先将非数值转为数值,Number下方法不会
      Number.isFinite(NaN); // false
      Number.isFinite(Infinity); // false
      Number.isFinite(-Infinity); // false
      Number.isFinite('foo'); // false
      Number.isFinite('15'); // false
      Number.isFinite(true); // false复制代码
    • isInteger
      // js 中整数和浮点数是同样的存储方法
      Number.isInteger(25); // true
      Number.isInteger(25.0); // true
      Number.isInteger(25.1); // false复制代码
    • parseFloat() 和全局的保持一致
    • parseInt() 和全局的保持一致
      Number.parseInt === parseInt; // true
      Number.parseFloat === parseFloat; // true
      Number.parseFloat('123.45#'); // 123.45复制代码
    • isNaN() 和全局的有所区别,全局的方法会先将非数值转为数值,Number下方法不会
      Number.isNaN(NaN) // true
      Number.isNaN(15) // false
      Number.isNaN('15') // false
      Number.isNaN(true) // false
      Number.isNaN(9/NaN) // true
      Number.isNaN('true'/0) // true
      Number.isNaN('true'/'true') // true复制代码
    • MAX_SAFE_INTEGER 最大整数上限
    • MIN_SAFE_INTEGER 最小整数下限
    • isSafeInteger JS 整数范围-2^53到2^53之间(不含两个端点),判断是否在这个范围内
      Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1; // true
      Number.MIN_SAFE_INTEGER; // -9007199254740991
      Math.pow(2, 53); // 9007199254740992
      9007199254740993;// 9007199254740992
      Number.isSafeInteger('a') // false
      Number.isSafeInteger(null) // false
      Number.isSafeInteger(NaN) // false
      Number.isSafeInteger(Infinity) // false
      Number.isSafeInteger(-Infinity) // false
      Number.isSafeInteger(3) // true
      Number.isSafeInteger(1.2) // false
      Number.isSafeInteger(9007199254740990) // true
      Number.isSafeInteger(9007199254740992) // false
      Number.isSafeInteger(Number.MIN_SAFE_INTEGER - 1) // false
      Number.isSafeInteger(Number.MIN_SAFE_INTEGER) // true
      Number.isSafeInteger(Number.MAX_SAFE_INTEGER) // true
      Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1) // false复制代码
    • MAX_VALUE
    • MIN_VALUE
    • NaN
    • NEGATIVE_INFINITY
    • POSITIVE_INFINITY
    • EPSILON 表示1与大于1的最小浮点数之间的差,2.220446049250313e-16
      Number.EPSLION === Math.pow(2, -52); // false
      Number.EPSILON.toFixed(20); // "0.00000000000000022204"
      0.1 + 0.2; // 0.30000000000000004
      0.1 + 0.2 - 0.3; // 5.551115123125783e-17
      0.1 + 0.2 === 0.3; // false复制代码
Object.getOwnPropertyNames(Number);复制代码
  • constructor
  • toExponential
  • toFixed
  • toPrecision
  • toString
  • valueOf
  • toLocaleString

    Math

    相关polyfill
    所有方法都是静态方法,只能在 Math 对象上调用

    // total 55
    Object.getOwnPropertyNames(Math);复制代码
    • abs
    • acos
    • acosh
    • asin
    • asinh
    • atan
    • atanh
      -`atan2
    • ceil
    • cbrt
    • expm1
    • clz32
    • cos
    • cosh
    • exp
    • floor
    • fround
    • hypot
    • imul
    • log
    • log1p
    • log2
    • log10
    • max
    • min
    • pow
    • random
    • round
    • sign() 判断一个数是正、负还是0
    • sin
    • sqrt
    • tan
    • tanh
    • trunc() 去除小数部分
    • E
    • LN10
    • LN2
    • LOG10E
    • LOG2E
    • PI
    • SQRT1_2
    • SQRT2
    • sinh
    • clamp
    • DEG_PER_RAD
    • degrees
    • fscale
    • iaddh
    • isubh
    • imulh
    • RAD_PER_DEG
    • radians
    • scale
    • umulh
    • signbit

转载于:https://juejin.im/post/5a090f1ff265da431d3c2bbf

本系统旨在构建一套面向高等院校的综合性教务管理平台,涵盖学生、教师及教务处三个核心角色的业务需求。系统设计着重于实现教学流程的规范化与数据处理的自动化,以提升日常教学管理工作的效率与准确性。 在面向学生的功能模块中,系统提供了课程选修服务,学生可依据培养方案选择相应课程,并生成个人专属的课表。成绩查询功能支持学生查阅个人各科目成绩,同时系统可自动计算并展示该课程的全班最高分、平均分、最低分以及学生在班级内的成绩排名。 教师端功能主要围绕课程与成绩管理展开。教师可发起课程设置申请,提交包括课程编码、课程名称、学分学时、课程概述在内的新课程信息,亦可对已开设课程的信息进行更新或撤销。在课程管理方面,教师具备录入所授课程期末考试成绩的权限,并可导出选修该课程的学生名单。 教务处作为管理中枢,拥有课程审批与教学统筹两大核心职能。课程设置审批模块负责处理教师提交的课程申请,管理员可根据教学计划与资源情况进行审核批复。教学安排模块则负责全局管控,包括管理所有学生的选课最终结果、生成包含学号、姓名、课程及成绩的正式成绩单,并能基于选课与成绩数据,统计各门课程的实际选课人数、最高分、最低分、平均分以及成绩合格的学生数量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值