以某个string为值快速创建数组

  1. var obj={info:'content'};
  2. var infofo=obj.info;
  3. console.log(obj.info); //content
  4. console.log(infofo.split(';')); //['content'],用一个不存在的字符分割即可快速生成数组。

sort通过属性排序的用法

  1. data.sort(desc('value'));
  2. function desc(property){
  3. return function(a,b){
  4. var value1 = a[property];
  5. var value2 = b[property];
  6. return value2 - value1;
  7. };
  8. }

new Date的getTime和setTime

  1. new Date()返回的值直接做除法会自动转换类型new Date().getTime()
  2. var today=new Date().getTime()/1000;
  3. console.log(today);//1584338835.367
  4. var d=new Date();
  5. d.setTime(today*1000);
  6. console.log(d.getFullYear());//2020

对象的方法写法

  1. var obj={'a':1,
  2. toString(){
  3. return 'abc'
  4. }
  5. }
  6. console.log(obj.toString());//'abc',方法不满足键值对写法也可以

查找字符串中是否存在某些值

  1. /^0-9+$/.test(something);
  2. something.match(/\d+/);

小数点后四舍五入保留n位小数

  1. function round(num,decimal) {
  2. return Math.round(num*Math.pow(10,decimal))/Math.pow(10,decimal);
  3. }
  4. var a = round(12.3456789,2)//结果a为number
  5. ES5.5+写法
  6. var num = 12.456789;
  7. var b = num.toFixed(2);//结果b为string

进制转换/科学计数法转换

  1. parseFloat(3.7e17);//370000000000000000
  2. parseInt(3.7e17);//370000000000000000,解除科学计数法。
  3. *进制转换*十进制转为其他
  4. var a = 456;
  5. a.toString(2);//"111001000"
  6. 456.toString(2);//SyntaxError
  7. ->
  8. (456).toString(2);//"111001000"
  9. 456..toString(2);//"111001000"
  10. *进制转换*其他转为十进制
  11. parseInt(111001000,2);//456

Number()用法

  1. Number(),//0
  2. //(注意下边四个必须是数字类型,不能是字符串,字符串则为NaN)
  3. Number(undefined), //NaN
  4. Number(null), //0
  5. Number(true), //1
  6. Number(false),//0
  7. Number('undefined'), //NaN
  8. Number('null'), //NaN
  9. Number('true'), //NaN
  10. Number('false'),//NaN
  11. //字符串
  12. //1、空字符串、空格字符串
  13. //2、内容纯数字->正常数字
  14. //3、内容非数字->NaN(除了最下边的特殊情况)
  15. Number(''),//0
  16. Number(' '),//0
  17. Number('123'),//123
  18. Number('45a'),//NaN
  19. //对象
  20. //数组记法:arr.length<=1可以正常转,arr.length>1全部NaN
  21. //1、下边情况可以转数字
  22. Number([]),//0
  23. Number([' ']),//0
  24. Number(['']),//0
  25. Number([5]),//5
  26. Number(['5']),//5
  27. //2、String实例对象(下边的newString使用时会把参数转化成字符串,然后返回一个String的实例对象。如果参数不是字符串却有字母,会当变量使用,如new String(12a)会报错)
  28. Number(new String(123)),//123
  29. Number(new String('45a')),//NaN
  30. Number(new String([Infinity])),//Infinity
  31. //3、其他对象全部NaN
  32. Number([1,2]),//NaN
  33. Number([,5]),//NaN
  34. Number({}),//NaN
  35. //1、无穷大和无穷小(Infinity,-Infinity)
  36. //2、科学计数法
  37. //3、进制转换(只能用前缀,后缀会报错)
  38. //注意:八进制(前缀是0)在字符串里不是八进制数字
  39. Number(Infinity),//Infinity
  40. Number(-Infinity),//-Infinity
  41. Number('Infinity'),//Infinity
  42. Number('-Infinity'),//-Infinity
  43. Number('3e2'),//300 3*10^2得来的
  44. Number(3e2),//300
  45. Number('0x10'),//16,0x是十六进制前缀,转换成十进制是16
  46. Number(0x10),//16
  47. Number('011'),//11,正常字符串转换
  48. Number(011),//9,八进制 -> 十进制

apply、call、bind例子

1535346409-7922-20170316173631526-1279562612.png

  1. obj.myFun.call(db,'成都','上海');     // 德玛 年龄 99 来自 成都去往上海
  2. obj.myFun.apply(db,['成都','上海']); // 德玛 年龄 99 来自 成都去往上海
  3. obj.myFun.bind(db,'成都','上海')(); // 德玛 年龄 99 来自 成都去往上海
  4. obj.myFun.bind(db,['成都','上海'])();   // 德玛 年龄 99 来自 成都, 上海去往 undefined

Array.from

Array.from (obj, mapFn)

  1. //将数组中布尔值为false的成员指为0
  2. Array.from([1, ,2,3,3], x => x || 0) //[1,0,2,3,3]
  3. //将一个类似数组的对象转为一个数组,并在原来的基础上乘以2倍
  4. let arrayLike = { '0': '2', '1': '4', '2': '5', length: 3 }
  5. Array.from(arrayLike, x => x*2) //[4,8,10]
  6. //将一个set对象转为数组,并在原来的基础上乘以2倍
  7. Array.from(new Set([1,2,3,4]), x => x*2) //[2,4,6,8]

Array.from ({length:n}, Fn)

  1. Array.from({length:3}, () => 'jack')
  2. //["jack", "jack", "jack"]
  3. Array.from({length:3}, item => (item = {'name':'shao','age':18}))
  4. //[{'name':'shao','age':18}, {'name':'shao','age':18}, {'name':'shao','age':18}]
  5. Array.from({length: 2}, (v, i) => item = {index:i});
  6. //生成一个index从0到4的数组对象[{index: 0},{index: 1}]

Array.from(string)

  1. Array.from('abc') //['a','b','c']