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