0
点赞
收藏
分享

微信扫一扫

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




举报

相关推荐

0 条评论