以下是今天学习到的一些js语法,特整理出来。
1、 (10)["toString"]() === "10" // true
2、如何优雅的取整
var a = ~~2.33
var b = 2.33 | 0
var c = 2.33 >> 0
// a = 2
// b = 2
// c = 2
3、如何优雅的实现金钱格式化
正则表达式
var test1 = '1234567890'
var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
console.log(format) // 1,234,567,890
非正则实现
function formatCash( str ) {
return str.split('').reverse().reduce((prev, next, index) =>{
return((index % 3) ? next : ( next + ',')) + prev
})
}
console.log(formatCash('1234567890'))
4、逗号运算符 (C语言运算符)
var a = 0;
var b = ( a++, 99);
//a = 1
//b = 99
5、不用Number、parseInt和parseFloat和方法把"1"字符串转换成数字
不准用强制类型转换,那么就想到了强大了隐式转换
var a = "1";
var b = +a;
console.log(typeof(b), b) // number 1
6、最短的代码实现数组去重 (es6)
[...new Set([1, '1', 2,1,1,3,4,'1','2'])]
//[1, "1", 2, 3, 4, "2"]
7、用最短的代码实现以个长度为m(6)且值都n(8)的数组;(es6)
Array(6).fill(8)
8、短路表达式
条件判断
var a = b && 1
//相当于
if ( b ) {
a = 1
} else {
a = b
} var c = d || 1
//相当于
if ( d ) {
c = d
} else {
c = 1
}
9、取出一个数组中的最大值和最小值
var num = [5, 15, 25, -20];
var max = Math.max.apply(Math, num);
var min = Math.min.apply(Math, num);
// max 25
// min -20