• JavaScript 学习19.Number 数字对象 上海


    前言

    JavaScript 不区分整数和浮点数,只有一种Number 数字类型。

    Number 数字类型

    小数点后面的.0的数字会自动省略

    var a = 12;    // 12
    var b = 12.0;  // 12
    var c = 12.00;  // 12
    var d = 12.2;   // 12.2
    var e = 12.20;  // 12.2
    

    极大或极小的数字可通过科学(指数)计数法来写:

    var y=123e5;    // 12300000
    var z=123e-5;   // 0.00123
    

    new Number() 定义数字对象

    var x = 12;
    var y = new Number(12);
    console.log(typeof x); // number
    console.log(typeof y); // object
    

    x 和 y的值都是12,用==判断是相等的。但是===判断是false, 因为数据类型不一样,一个是number类型,一个是object类型

    var x = 12;
    var y = new Number(12);
    console.log(x == y);  // true
    console.log(x === y);  // false
    

    运算

    纯数字可以用加减乘除等运算符

    var a = 2;
    var b = 3;
    var c1 = a + b;  // 5
    var c2 = a - b;  // -1
    var c3 = a * b;  // 6
    var c4 = a / b;  // 0.6666666666666666
    var c5 = a ** b;  // 8
    

    数字和字符串

    2个纯数字的字符串相加,会当字符串拼接

    var a = 3;
    var b = 4;
    var x = a+b; // 7
    
    // 两个纯数字字符串相加
    var c = '3';
    var d = '4';
    var y = c + d; // 34
    

    数字和字符串混加不会报错,会拼接成新的字符串

    // 数字加字符串
    var x = 10;
    var y = "20";
    var z = x + y;           // 1020(字符串)
    console.log(z) ;
    
    // 字符串加数字
    var a = "10";
    var b = 20;
    var c = a + b ; // 1020(字符串)
    console.log(c) ;
    

    如下字符串加2个数字

    var x = 10;
    var y = 20;
    var z = "The result is: " + x + y;  // The result is:1020
    

    如果2个数字在前面,那么结果会不一样

    var x = 10;
    var y = 20;
    var z = "hello";
    var result = x + y + z; //30hello
    

    因为JavaScript是从左往右计算,会先计算x+y的值得到30,再拼接hello得到30hello

    纯数字的字符串做其它运算的时候,会当数字处理(加法运算当字符串处理)

    var x = "100";
    var y = "10";
    var z = x / y;       // z 将是 10
    console.log(z)
    

    乘法运算

    var x = "100";
    var y = "10";
    var z = x * y;       // z 将是 1000
    

    减法运算

    var x = "100";
    var y = "10";
    var z = x - y;      // z 将是 90
    

    需注意的是,只有加法运算,数字类的字符串会被当字符串处理。

    NaN 非数值

    数字里面有个特殊的值NaN,它表示是一个非数字.

    var x = 100 / "a";  //  NaN
    

    函数 isNaN() 判断某个值是否是数字类型

    var x = 100 / "a";  //  NaN
    console.log(x);   //  NaN
    console.log(isNaN(x));  // true
    

    NaN和其它数字运算,得到的结果也会是NaN

    var x = NaN;
    var y = 20;
    var z = x+y; // NaN
    console.log(z);  // NaN
    console.log(typeof z);  // number
    

    NaN也是一个number类型。

    Infinity 无穷大

    Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。

    一个数除以0,会得到无穷大

    var x =  2 / 0;          // Infinity
    var y = -2 / 0;          // -Infinity
    
    console.log(x);  // Infinity
    console.log(y);  // -Infinity
    console.log(typeof x);  // number
    console.log(typeof y);  // number
    

    toString() 转字符串

    数字类型转字符串类型

    var x =  20;
    var y = x.toString();
    console.log(y);  // number
    console.log(typeof x);  // string
    console.log(typeof y);  // string
    

    toString() 方法把数输出为十六进制、八进制或二进制

    var myNumber = 128;
    myNumber.toString(16);     // 返回 80
    myNumber.toString(8);      // 返回 200
    myNumber.toString(2);      // 返回 10000000
    

    toFixed() 方法

    toFixed() 方法用于保留几位小数,非常适合处理金额的问题,比如10.00这种数字,会被自动变成10,但是我们希望保留2位小数

    var x = 10.00;
    console.log(x); // 10
    console.log(x.toFixed(2))   // 10.00
    

    在保留小数点后面几位四舍五入的时候也会用到

    var x = 10.0537;
    console.log(x.toFixed(0))   // 10
    console.log(x.toFixed(1))   // 10.1
    console.log(x.toFixed(2))   // 10.05
    console.log(x.toFixed(3))   // 10.054
    console.log(x.toFixed(4))   // 10.0537
    console.log(x.toFixed(5))   // 10.05370
    

    toPrecision() 方法

    toPrecision(number) 方法返回字符串,返回一个字符串,表示指定精度的数字。参数number的范围是1-100

    var x = 10.0537;
    console.log(x.toPrecision(1))   // 1e+1
    console.log(x.toPrecision(2))   // 10
    console.log(x.toPrecision(3))   // 10.1
    console.log(x.toPrecision(4))   // 10.05
    console.log(x.toPrecision(5))   // 10.054
    

    把变量转换为数值

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

    • Number() 方法
    • parseInt() 方法
    • parseFloat() 方法

    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
    Number(new Date("2019-04-15"));    // 返回 1506729600000
    

    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
    parseFloat("years 10");  // 返回 NaN
    
  • 相关阅读:
    开源 .net license tool, EasyLicense !
    Logging with NLog
    Logging with Log4net (二)
    Logging with Debug And Trace (一)
    ThoughtWorks代码挑战——FizzBuzzWhizz
    开源插件 :MahApps.Metro.IconPacks
    Java地址:
    小程序源码下载[demo整理自github]
    多块图形合并(自动合并相交块)
    Textbox
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16300554.html
Copyright © 2020-2023  润新知