资讯专栏INFORMATION COLUMN

你应该这样整理js中的零乱知识

Yangyang / 1419人阅读

摘要:它的作用是操作数组增删改参数是返回值是被删除的项目。必须,整数,操作的位置必须,整数,要删除的项目数量,如果为则不会删除非必须,向数组添加的项目。注意会操作当前增删改的意思是切片。它是函数的函数。它的作用是动态改变。

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这种方式去写组件。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83283.html

相关文章

  • 我理解的 iOS 与 Android 的区别

    摘要:程序员应该非常清楚这一点,维护或者兼容老系统是非常痛苦的,但是在苹果却能把系统维护的相当完备。如果你是的重度用户的话你会发现近两年的一些新的技术软件正在成体系的发展,这是在苹果系统上看不到的。 事实上在讲清楚这个问题之前,必须知道一个所有人都无法拒绝的常识,即:对大多数人来说 iOS 绝对比 Android 好用。本文试着从使用者的角度出发谈谈自己对两个手机端操作系统的理解与认识 iO...

    yzzz 评论0 收藏0
  • 我理解的 iOS 与 Android 的区别

    摘要:程序员应该非常清楚这一点,维护或者兼容老系统是非常痛苦的,但是在苹果却能把系统维护的相当完备。如果你是的重度用户的话你会发现近两年的一些新的技术软件正在成体系的发展,这是在苹果系统上看不到的。 事实上在讲清楚这个问题之前,必须知道一个所有人都无法拒绝的常识,即:对大多数人来说 iOS 绝对比 Android 好用。本文试着从使用者的角度出发谈谈自己对两个手机端操作系统的理解与认识 iO...

    jzman 评论0 收藏0
  • 前端知识整理

    摘要:难怪超过三分之一的开发人员工作需要一些知识。但是随着行业的饱和,初中级前端就业形势不容乐观。整个系列的文章大概有篇左右,从我是如何成为一个前端工程师,到各种前端框架的知识。 为什么 call 比 apply 快? 这是一个非常有意思的问题。 作者会在参数为3个(包含3)以内时,优先使用 call 方法进行事件的处理。而当参数过多(多余3个)时,才考虑使用 apply 方法。 这个的原因...

    Lowky 评论0 收藏0
  • 前端知识整理

    摘要:难怪超过三分之一的开发人员工作需要一些知识。但是随着行业的饱和,初中级前端就业形势不容乐观。整个系列的文章大概有篇左右,从我是如何成为一个前端工程师,到各种前端框架的知识。 为什么 call 比 apply 快? 这是一个非常有意思的问题。 作者会在参数为3个(包含3)以内时,优先使用 call 方法进行事件的处理。而当参数过多(多余3个)时,才考虑使用 apply 方法。 这个的原因...

    snowLu 评论0 收藏0
  • 前端基础入门

    摘要:手把手教你做个人火的时候,随便一个都能赚的盆满钵满,但是,个人没有服务端,没有美工,似乎就不能开发了,真的是这样的吗秘密花园经典的中文手册。涵盖前端知识体系知识结构图书推荐以及入门视频教程,全的简直不要不要的了。 JavaScript 实现点击按钮复制指定区域文本 html5 的 webAPI 接口可以很轻松的使用短短的几行代码就实现点击按钮复制区域文本的功能,不需要依赖 flash。...

    shinezejian 评论0 收藏0

发表评论

0条评论

Yangyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<