1. splice

splice的意思是 粘接。
它是数组的函数。
它的作用是操作数组(增删改)
参数是(index,howmany,item1,item2,...);返回值是被删除的项目。

index: 必须,整数,操作的位置
howmany: 必须,整数,要删除的项目数量,如果为0则不会删除
item1...: 非必须,向数组添加的项目。

注意: splice会操作当前array.

var arr = ['a','b','c']
// 增
var result = arr.splice(1,0,'d'); // arr: a,d,b,c; result: []
// 删
var result = arr.splice(1,1);// arr: a,b,c; result: ['d']
// 改
var result = arr.splice(1,1,'e');// arr: a,e,c; result: ['b']

2. slice

slice的意思是切片。
它是数组的函数。
它的作用是操作数组(查)
参数是(start, end);返回值是一个新数组。

var arr = ['a','b','c'];
var result = slice(1,2);// result:['b']

3. call

call的意思是调用。
它是函数的函数。
它的作用是动态改变this。
参数是(this,arg1,arg2...)。没有返回值。

this: 用作this的对象。
arg...: 给函数的参数

例子

function cat() {
  this.food = 'fish';
  this.say = function () {
    console.log('my food is '+this.food);
  }
}

var c = new cat;
c.say();

function dog() {
  this.food = 'bone';
}

c.say.call(new dog);

4. apply

apply的意思是使用。
它和call一样,是函数的函数。
参数和call有不同,是(this,[arg1,arg2...])。没有返回值。
举例略。

5. bind

bind的意思是绑定。
它也是函数的函数。
它的作用是 动态绑定this.

function cat() {
  this.food = 'fish';
  this.say = function () {
    console.log('my food is '+this.food);
  }
}

var c = new cat;
c.say.bind(c);// 绑定为c

function dog() {
  this.food = 'bone';
}

c.say.call(new dog);// 未执行

6. arguments

函数内置对象

function say(name,age) {
  console.log(arguments);
  console.log([].slice.call(arguments));// 相当于arguments.slice
}

say('allen',28);

输出为:

// json对象
{ '0': 'allen', '1': 28 }
// 数组
[ 'allen', 28 ]

7. 正则中的w

var reg = new RegExp('\\w');
var match = reg.exec('/hello/world/1');
console.log(match[0]); 

上面的代码只匹配出了h.因为w虽然代表word,单词,可实际表示的是[a-zA-Z_]{1},并不表示一个单词,所以要匹配单词需要\\w+

var reg = new RegExp('\\w+');
var match = reg.exec('/hello/world/1');
console.log(match[0]); 

8. andt中的form

Form.create({
    mapPropsToFields(props){
        return {
            name: {value:props.name}
        }
    }
})(App)

以上是antd中Form的用法,Form会自动接管App的value和onchange。如果App是函数式的,那么onChange会找不到,只能用Component这种方式去写组件。


唯见长江天际流
827 声望12 粉丝

黄鹤楼送孟浩然之广陵


« 上一篇
express简介
下一篇 »
json和jsonp