js-随记

2 篇文章 0 订阅
  1. 改变原数组的方法
pop、push、splice、fill、reverce、shift、unshift、sort
  1. 填充一个长度为10,元素为a的数组
方法一:
Array.from({length:10}, (item)=>'a') 

方法二:
new Array(10).fill("a")
  1. 求sum
return array.length > 0 ? array.reduce((total, currentValue)=>{return total+currentValue})
  1. 异或运算
a^0 = a
a^a = 0
a ^ b ^ a = b
  1. 小数点保留几位
n = 111
n.toFixed(5)
  1. 返回字符串的某个字符编码
s = 'abcde';
s.charCodeAt(3);
  1. substr 、substing 、slice
s = 'abcde';
//substr(startIndex, length)
s.substr(1,2); //  "bc"


//substring(startIndex, endIndex)
s.substring(1,2); // "b"
s.substring(1,0); // "a"
s.substring(1,1);// ""

s.substing(2,0); //"ab"
s.substring(2,2);// ""
s.substing(2,3); //"c"


//slice 和 substring相似,但是,endIndex 小于等于 startIndex 的时候,返回空字符串
s.slice(1,3) //"bc"
s.slice(2,1) // ""
s.slice(2,2) // ""
s.slice(2,3) // "c"

当第二参数为负数时,substring 都归于0作为处理
s.substring(2,-1); //"ab"
s.substring(2, 0); //"ab"
s.substring(3,-1); //"abc"
s.substring(3, 0); //"abc"

当第二参数为负数时,substr最后一位的前一位为-1开始算。
s.slice(2,-1); //"cd"
s.slice(2,-2);   // "c"
s.slice(2,-3);   // ""
s.slice(2,-4);   // ""

substring,第二参数为正时,图解
在这里插入图片描述
substing(1,2) 和 substring(2,1) 取得的結果都是一樣的。

  1. parseInt
n = 111
parseInt(n, 2);//7


a = 0.0000005
parseInt(a); // 5
// 0.000005     -> 0.000005 -> 0
// 0.0000005   -> 5e-7 -> 5
// 0.00000005 -> 5e-8 -> 5


a = "0.0000005"
parseInt(a); // 0

parseInt的传参为数字时,会先转化成string,再转成整数

  1. 时间戳
new Date("2019-01-02").getTime(); //1546387200000

+new Date("2019-01-02");//1546387200000
  1. N次方
10 ** 2  ; //100
10 ** 3  ; //1000
10 ** 4  ; //10000
  1. 交换赋值
let a = 1;
let b = 2;
[a, b] = [b, a];
  1. 解构
//可设置默认值
const arr = [1,4];
const [a, b=2, c=8] = arr;
//a,b,c  1,4,8

//别名
const  arr = [1, 4, 8];
const  {0:a, 2:b} = arr;
// a, b  1,8

  1. 删除个别对象
const obj = {x:0 , y: 2,  z: 4};
const {x, ...rest} = obj;
//rest  {y: 2, z: 4}
  1. 精度问题
0.1+0.2 === 0.3  -> false
0.7 + 0.1 = 0.7999999999999999
  1. Object.assign的用法
  • 为对象添加属性
Object.assign(target, {a, b});//为 target 添加 a、b属性
  • 为对象添加方法
  • 克隆对象
Object.assign(target, origin);// 注意这边是浅拷贝
  • 将多个对象合并到某个对象
  • 为属性指定默认值
Object.assign({}, DEFAULT, options)
  1. 字符串填充
  • padStart
  • padEnd
'123'.padStart(10, 0);  // "0000000123"

'123'.padEnd(10, 'a2'); // "123a2a2a2a"
  1. reduce 合并对象和对象数组
function link(obj, keyName, valName) {
    return obj.reduce((l, item)=>{
        return {
           ...l,
           [item[keyName]]: item[valName] 
        }
    }, {})
}

let arr = [
    {name: 'lln', count: 2},
    {name: 'linln', count: 0},
    {name: 'linlini', count: 4},
]

link(arr, 'name', 'count');
// {lln: 2, linln: 0, linlini: 4}
  1. 获取数组对象的单列数据
function arrayColumn(array, keyName) {
    return Array.from(array, ({[keyName]:value}) => value);
}
let arr = [
    {name: 'lln', count: 2},
    {name: 'linln', count: 0},
    {name: 'linlini', count: 4},
]

arrayColumn(arr, 'name');
// ["lln", "linln", "linlini"]
  1. 过滤空值
array.filter(Boolean)

//例如:
['', '122', false, true, undefined, '222', null, ''].filter(Boolean)
//  ["122", true, "222"]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值