javascript中的数据类型

简介: javascript中的数据类型

javascirpt中的基本类型:string、number、bigint、boolean、symbol、null和nudefined

除了基本类型,另外一种类型就是对象,通常以{}的语法定义比如{name: "John", age: 30}

包装类型:String、Number、Boolean、Symbol、Bigint

四舍五入

有时候需要保留两位小数,那么我们可以先乘后除

let num = 1.23456;
alert( Math.round(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23

还可以使用toFixed方法来保留小数位数

let num = 12.34;
alert( num.toFixed(1) ); // "12.3"

保留的时候会进行四舍五入

let num = 12.36;
alert( num.toFixed(1) ); // "12.4"

需要注意的是使用此API得出的结果是字符串,如果小数位数不足会补充0

let num = 12.34;
alert( num.toFixed(5) ); // "12.34000", added zeroes to make exactly 5 digits

再一个就是要注意小数相加会有精度损失

alert( 0.1 + 0.2 == 0.3 ); // false
alert( 0.1 + 0.2 ); // 0.30000000000000004

如果这个场景发生在电商的购物车结算尤其要注意,可能结果不是你预期的

那要如何解决精度损失的问题呢?

方法一:保留两位小数,但是返回结果是字符串

let sum = 0.1 + 0.2;
alert( sum.toFixed(2) ); // 0.30

方法二:保留两位小数然后做类型转换,转换成数字

let sum = 0.1 + 0.2;
alert( +sum.toFixed(2) ); // 0.3

方法三:先乘后除,但是解决的不彻底

alert( (0.1 * 10 + 0.2 * 10) / 10 ); // 0.3
alert( (0.28 * 100 + 0.14 * 100) / 100); // 0.4200000000000001

数值类型转换,可以使用parseInt或者parseFloat进行转换

alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5
alert( parseInt('12.3') ); // 12, only the integer part is returned
alert( parseFloat('12.3.4') ); // 12.3, the second point stops the reading

如果不是数字则转换不出来

alert( parseInt('a123') ); // NaN, the first symbol stops the process

Math类,方法1:Math.random获取随机数

alert( Math.random() ); // 0.1234567894322
alert( Math.random() ); // 0.5435252343232
alert( Math.random() ); // ... (any random numbers)

求最大、最小

alert( Math.max(3, 5, -10, 0, 1) ); // 5
alert( Math.min(1, 2) ); // 1

指数运算

alert( Math.pow(2, 10) ); // 2 in power 10 = 1024
相关文章
|
17天前
|
JavaScript
JS 获取对象数据类型的键值对的键与值
JS 获取对象数据类型的键值对的键与值
|
1月前
|
JavaScript 前端开发
JavaScript 中有哪些数据类型?
JavaScript 中有哪些数据类型?
18 3
|
1月前
|
JavaScript
JS常用数据类型转换
JS常用数据类型转换
13 1
|
1月前
|
存储 JavaScript 前端开发
javascript的8中数据类型
javascript的8中数据类型
|
1月前
|
JavaScript 前端开发 开发者
编程笔记 html5&css&js 071 JavaScript Symbol 数据类型
编程笔记 html5&css&js 071 JavaScript Symbol 数据类型
|
1天前
|
JavaScript 前端开发
js变量的作用域、作用域链、数据类型和转换应用案例
【4月更文挑战第27天】JavaScript 中变量有全局和局部作用域,全局变量在所有地方可访问,局部变量只限其定义的代码块。作用域链允许变量在当前块未定义时向上搜索父级作用域。语言支持多种数据类型,如字符串、数字、布尔值,可通过 `typeof` 检查类型。转换数据类型用 `parseInt` 或 `parseFloat`,将字符串转为数值。
6 1
|
10天前
|
JavaScript 前端开发
js数据类型有几类?一共有几种?判断数据类型的方法是什么?
js数据类型有几类?一共有几种?判断数据类型的方法是什么?
|
12天前
|
存储 JavaScript 前端开发
JavaScript的引用数据类型主要包括对象
【4月更文挑战第16天】JavaScript的引用数据类型主要包括对象
17 4
|
1月前
|
JavaScript
|
1月前
|
JSON JavaScript 前端开发
js如何正确判断数据类型
js如何正确判断数据类型
24 0