Javascript常用笔记(不定时更新)

1,关于两个!!a的用法
在Antd的checkbox group里面有用,判断indeterminate的状态的地方
!!a是一个布尔值,代表a有内容,即a不为null,不为undefined,不为空字符串

1
2
3
4
5
    var array1=[1,2,3];
    var array2=[];

    !!array1.length;//true
    !!array2.length;//false

2,Spread运算符(…)

用法1:用于构造函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    var arr1 = [1,3,5];
    var arr2 = [2,4,6];

    […arr1,…arr2]  //输出[1,3,5,2,4,6]

    //第二个例子
    var o2 = {
        age:22,
        address:'中国北京',
    }
   
    var o1={
        name:'张三',
        ...o2,
    }
    console.log(o1);//得到一个属性都有的对象

用法2:用于调用函数时,将一个数组用作函数的参数,(就是把这个数组转化为参数的列表)

1
2
3
4
5
6
    function testFunc(x,y,z){
        return x+y+z;
    }

    var args = [1,2,3];
    testFunc(…args);  //输出6

用法3,(不知道是不是应该叫用法3)
属性前面的三个点(…props),是延展操作符。 在React中,延展操作符一般用于属性的批量赋值。比如

1
2
3
4
5
6
7
8
9
    var props = {};
    props.foo = x;
    props.bar = y;
    var component = <Component {...props} />;
    //等同于
    var props = {};
    props.foo = x;
    props.bar = y;
    var component = <Component foo={x} bar={y} />;

使用延展操作符的好处是,当你的属性有所增加的时候,组件中的使用不需要去增加对应的属性。

3,filter函数,
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

1
2
3
4
5
6
7
    var ages = [32,33,16,40];

    function checkAdult(age){
          return age >= 18;
    }

    ages.filter(checkAdult);//[32,33,40]

4,Array(46).keys()迭代器
这个不太懂,比如得到一个数组,元素是数字[0,1,2,3,……,45]
就是用下面这个方法

1
2
3
4
    var it = Array(46).keys();//这是一个迭代器对象,具体是啥我也不造,目前看到过的都是...它 当参数用,从零到四十五
    var arr1 = [];
    arr1 = [...it];
    document.getElementById("demo3").innerHTML=arr1;//输出0,1,2,3,4,5,.....,45

5, var a = a || {}
是给a赋默认值的一种写法。
如果a已经赋值了,这 a 为真 a || {} 返回 a,即a还是原来的值。
如果a为假 a || {} 返回 {},就为a赋值为{} 了。

6,Object.assign(target,source)复制

1
2
3
4
5
6
7
8
9
10
    const target = { a: 1, b: 2 };
    const source = { b: 4, c: 5 };

    const returnedTarget = Object.assign(target, source);

    console.log(target);
    // expected output: Object { a: 1, b: 4, c: 5 }

    console.log(returnedTarget);
    // expected output: Object { a: 1, b: 4, c: 5 }

发表评论

电子邮件地址不会被公开。 必填项已用*标注