//0开头转8进制
0123 //83
//0x开头转16进制一样
0x66 //102
document.referrer //来访页面的url
window.location.href //当前页面的url
const a =[];
a.a = 'a'
a//[a: "a"]
交换两个数
//交换两个数
//异或
var a = 3;
var b = 4
a ^= b; // a = a ^ b
b ^= a;
a ^= b;
console.log(a, b);
//ES6解构赋值
let a = 1;
let b = 2;
[b, a] = [a, b];
console.log(a, b);
小数取整
var num = 123.123
// 常用方法
console.log(parseInt(num)); // 123
// “双按位非”操作符
console.log(~~ num); // 123
// 按位或
console.log(num | 0); // 123
// 按位异或
console.log(num ^ 0); // 123
// 左移操作符
console.log(num << 0); // 123
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
var resultArr = arr.toString().split(',').map(Number);
console.log(resultArr);
统计字符串中相同字符出现的次数
var str = '123456789ascvaasdasdas44as12das7qw12q4sad1a2d'
var arr = str.split('').reduce((n,m)=>
(n[m]++ || (n[m]=1),n),{}
)
//{1: 4, 2: 4, 3: 1, 4: 4, 5: 1, 6: 1, 7: 2, 8: 1, 9: 1, a: 9, s: 7, c: 1, v: 1, d: 5, …}
==隐式转换
//根据运算符优先级 ,! 的优先级是大于 == 的,所以先会执行 ![]
//!可将变量转换成boolean类型,null、undefined、NaN以及空字符串('')取反都为true,其余都为false。
//[]=>0
//{}=>NaN
//![]=>false
//!{}=>false
[]==[] //false
[]==![] //true