decimal.js是一个用于浮点数计算的JavaScript库,它可以解决JavaScript浮点数计算的精度问题。因为它内部采用10进制计算,所以它的计算结果和我们人类的计算结果是一致的。防止了JavaScript使用2进制计算的精度问题。
decimal.js的使用非常简单,只需要在页面中引入decimal.js的脚本文件即可:
<script src="https://cdnjs.cloudflare.com/ajax/libs/decimal.js/10.4.2/decimal.min.js"></script>
然后就可以在JavaScript代码中使用Decimal对象了:
let x = new Decimal('0.14');
let y = new Decimal('0.29');
console.log(x.add(d2).toNumber()); // 0.43
Decimal的方法还可以连续调用:
let x = new Decimal('0.14');
let y = new Decimal('0.29');
console.log(x.add(d2).mul(100).toNumber()); // 43
= 右移运算符
= 无符号右移运算符
let x = 1
let y = x
x = 2
console.log(y) // 1
let data1 = [1, 2, 3]
let data2 = data1
data1[0] = 4
console.log(data2) // [4, 2, 3]
这是因为数组是引用类型,而数字是值类型。值类型的变量赋值时,是将值复制一份给新的变量,而引用类型的变量赋值时,是将引用复制一份给新的变量,所以当改变其中一个变量的值时,另一个变量的值也会改变。
之前说过的使用const声明的叫常量,常量的值不能改变,但是如果常量的值是引用类型,那么引用的对象的值是可以改变的。
const data1 = [1, 2, 3]
data1 = [4, 5, 6] // TypeError: Assignment to constant variable.
data1[0] = 4
console.log(data1) // [4, 2, 3]
let data = [1, 2, 3]
let [x, y, z] = data
console.log(x) // 1
console.log(y) // 2
console.log(z) // 3
可以使用...运算符来获取剩余的值:
let data = [1, 2, 3, 4, 5]
let [x, y, ...z] = data
console.log(x) // 1
console.log(y) // 2
console.log(z) // [3, 4, 5]
一个对象也可以使用解构赋值:
let book = {
title: 'JavaScript入门',
price: 1980,
stock: 3
};
let { title, price, stock } = book;
console.log(title); // JavaScript入门
console.log(price); // 1980
console.log(stock); // 3
console.log(memo); // Undefined
甚至复杂的对象也可以使用解构赋值:
let book = {
title: 'JavaScript入门',
price: 1980,
stock: 3,
other: {
publisher: '技术出版社',
keyword: 'JavaScript'
}
};
let { title, price, stock, other: { publisher, keyword } } = book;
console.log(title); // JavaScript入门
console.log(price); // 1980
console.log(stock); // 3
console.log(publisher); // 技术出版社
console.log(keyword); // JavaScript
也可以给变量指定一个别名:
let book = {
title: 'JavaScript入门',
price: 1980,
stock: 3,
other: {
publisher: '技术出版社',
keyword: 'JavaScript'
}
};
let { title: name, price: cost, stock: count, other: { publisher: company, keyword: key } } = book;
console.log(name); // JavaScript入门
console.log(cost); // 1980
console.log(count); // 3
console.log(company); // 技术出版社
console.log(key); // JavaScript