zoukankan      html  css  js  c++  java
  • W3School-JavaScript笔记三

    JavaScript 只有一种数值类型。

    书写数值时带不带小数点均可。
    var x = 3.14; // 带小数点的数值
    var y = 3; // 不带小数点的数值

    超大或超小的数可通过科学计数法来写:
    实例
    var x = 123e5; // 12300000
    var y = 123e-5; // 0.00123

    JavaScript 数值始终是 64 位的浮点数
    与许多其他编程语言不同,JavaScript 不会定义不同类型的数,比如整数、短的、长的、浮点的等等。
    JavaScript 数值始终以双精度浮点数来存储,根据国际 IEEE 754 标准。
    此格式用 64 位存储数值,其中 0 到 51 存储数字(片段),52 到 62 存储指数,63 位存储符号:

    值(aka Fraction/Mantissa) 指数 符号
    52 bits(0 - 51) 11 bits (52 - 62) 1 bit (63)

    整数(不使用指数或科学计数法)会被精确到 15 位。
    小数的最大数是 17 位,但是浮点的算数并不总是 100% 精准:
    var x = 0.2 + 0.1; // x 将是 0.30000000000000004

    JavaScript 用 + 运算符对字符串(表示数字的字符串如"100")进行了级联,但-,*,/等运算时,字符串会被转换为数值再进行计算

    NaN - 非数值(not a number)
    NaN 属于 JavaScript 保留词,指示某个数不是合法数。
    尝试用一个非数字字符串进行除法会得到 NaN(Not a Number)
    var x = 100 / "Apple";
    isNaN(x); // 返回 true,因为 x 不是数

    要小心 NaN。假如您在数学运算中使用了 NaN,则结果也将是 NaN:
    var x = NaN;
    var y = 5;
    var z = x + y; // z 将是 NaN

    NaN 是数,typeof NaN 返回 number:
    typeof NaN; // 返回 "number"

    Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
    除以 0(零)也会生成 Infinity
    Infinity 是数:typeOf Infinity 返回 number。

    JavaScript 会把前缀为 0x 的数值常量解释为十六进制。
    实例
    var x = 0xFF; // x 将是 255

    绝不要用前导零写数字(比如 07)。
    一些 JavaScript 版本会把带有前导零的数解释为八进制。
    默认地,Javascript 把数显示为十进制小数。

    但是您能够使用 toString() 方法把数输出为十六进制、八进制或二进制。
    var myNumber = 128;
    myNumber.toString(16); // 返回 80
    myNumber.toString(8); // 返回 200
    myNumber.toString(2); // 返回 10000000

    数值可以是对象
    通常 JavaScript 数值是通过字面量创建的原始值:var x = 123 // typeof x 返回 number
    但是也可以通过关键词 new 定义为对象:var y = new Number(123) // typeof y 返回 object

    请不要创建数值对象。这样会拖慢执行速度。
    new 关键词使代码复杂化,并产生某些无法预料的结果
    JavaScript 对象无法进行比较。

    ------------------------------------------------------------------------

    toString() 以字符串返回数值。

    toExponential() 返回字符串值,它包含已被四舍五入并使用指数计数法的数字。
    var x = 9.656;
    x.toExponential(2); // 返回 9.66e+0
    x.toExponential(4); // 返回 9.6560e+0
    x.toExponential(6); // 返回 9.656000e+0

    toFixed() 返回字符串值,它包含了指定位数小数的数字:
    var x = 9.656;
    x.toFixed(0); // 返回 10
    x.toFixed(2); // 返回 9.66,非常适合处理金钱
    x.toFixed(4); // 返回 9.6560
    x.toFixed(6); // 返回 9.656000

    toPrecision() 返回字符串值,它包含了指定长度的数字:
    var x = 9.656;
    x.toPrecision(); // 返回 9.656
    x.toPrecision(2); // 返回 9.7
    x.toPrecision(4); // 返回 9.656
    x.toPrecision(6); // 返回 9.65600

    toFixed(N) 返回的字符串是包含N位小数的,toPrecision(N)返回的是长度为N的数字,包含整数位和小数位

    valueOf() 以数值返回数值:
    var x = 123;
    x.valueOf(); // 从变量 x 返回 123
    (123).valueOf(); // 从文本 123 返回 123
    (100 + 23).valueOf(); // 从表达式 100 + 23 返回 123

    在 JavaScript 中,数字可以是原始值(typeof = number)或对象(typeof = object)。
    在 JavaScript 内部使用 valueOf() 方法可将 Number 对象转换为原始值。
    没有理由在代码中使用它。
    所有 JavaScript 数据类型都有 valueOf() 和 toString() 方法。

    ------------------------------------------------------------------------
    把变量转换为数值
    这三种 JavaScript 方法可用于将变量转换为数字:

    Number() 方法
    parseInt() 方法
    parseFloat() 方法
    这些方法并非数字方法,而是全局 JavaScript 方法。

    Number() 方法
    Number() 可用于把 JavaScript 变量转换为数值:
    x = true;
    Number(x); // 返回 1
    x = false;
    Number(x); // 返回 0
    x = new Date();
    Number(x); // 返回 1404568027739
    x = "10"
    Number(x); // 返回 10
    x = "10 20"
    Number(x); // 返回 NaN

    >>>我觉得平常要获取时间戳时,可以直接F12,然后console.log(Number(new Date()));此时获取的即13位时间戳

    parseInt() 方法
    parseInt() 解析一段字符串并返回数值。允许空格。只返回首个数字:
    parseInt("10"); // 返回 10
    parseInt("10.33"); // 返回 10
    parseInt("10 20 30"); // 返回 10
    parseInt("10 years"); // 返回 10
    parseInt("years 10"); // 返回 NaN

    parseFloat() 方法
    parseFloat() 解析一段字符串并返回数值。允许空格。只返回首个数字:
    parseFloat("10"); // 返回 10
    parseFloat("10.33"); // 返回 10.33
    parseFloat("10 20 30"); // 返回 10
    parseFloat("10 years"); // 返回 10

    数值属性
    属性 描述
    MAX_VALUE 返回 JavaScript 中可能的最大数。
    MIN_VALUE 返回 JavaScript 中可能的最小数。
    NEGATIVE_INFINITY 表示负的无穷大(溢出返回)。
    NaN 表示非数字值("Not-a-Number")。
    POSITIVE_INFINITY 表示无穷大(溢出返回)。

  • 相关阅读:
    一种JavaScript的设计模式
    ADO.Net之使用DataRead Or DataSet
    求助:彻夜难眠的问题
    ASP.NET的全球化配置
    ADO.NET和.NET框架中的数据管理[转]
    javascript实现datagrid客户端checkbox列的全选,反选
    下载文件出现提示框或者直接显示在浏览器中
    Visual Studio .NET已检测到指定的Web服务器运行的不是ASP.NET 1.1 版..(转)
    网站优化的十大奇招妙技
    关键字加亮JS方法
  • 原文地址:https://www.cnblogs.com/bruceChan0018/p/14908849.html
Copyright © 2011-2022 走看看