废话不说,直接上题。

slice(),接收两个参数,第一个为开始index(从0开始),第二个为结束的index(也是从0开始,但是不包括index本身,只到index-1)。返回值是截取的数组,原数组不变化。传第三个参数,没有作用。

splice(),接收无数个参数,第一个为开始的index(从0开始),第二个为删除的元素的个数(0代表不删除,1代表删除一个...),第三个为添加的元素,第四个也为添加的元素.....,返回值是删除的元素组成的数组,如果删除了0个就返回空数组,原数组会被改变成被操作后的数组(这里需要注意一个问题,比如:arr =[1,2,3],arr.splice(1,0,4),arr会变成[1,4,2,3],添加的4是在2的前面插入)。

以上两个方法的区别和应用,面试官会问。

forEach方法(除了数组对象之外,forEach 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。比如:{0:"a",1:"b",length:2})

对于数组中出现的每个元素,forEach方法都会调用callback函数一次(采用升序索引顺序),但不会为数组中缺少的元素调用回调函数([1,2,"",3],第三个选项不会执行callback)。

arr.forEach(callback,thisArg),只接受两个参数,一个是回调方法,一个是context.callback必选, 最多可以接受三个参数的函数。 对于数组中的每个元素,forEach 都会调用callbackfn 函数一次。thisArg可选, callbackfn 函数中的 this 关键字可引用的对象,如果省略 thisArg,则 undefined将用作 this 值。这时你回答出来这些已经觉得自己还可以了,然后面试官会问你那callback的三个参数是什么?

回调函数的语法如下所示:

function callback(value, index, array1),value:数组元素的值。index:数组元素的数字索引。array1:包含该元素的数组对象。可以在回调方法中改变原数组。

这个方法的作用就是:利用数组中的值做一些应用,比如:显示出来,累加等等。

这里大家可以去区分一下$("div"),jQuery对象的each方法。很像,但是在回调方法调用时,传参不一样,请仔细查看。

链接地址:http://www.cnblogs.com/chaojidan/p/4141413.html

map方法,跟forEach方法差不多,唯一的区别是,arr.map(callback,thisArg),有返回值,返回值是:对每个数组中的元素执行callback后,callback返回的值组成的数组。

当然原数组也不会改变,除非你在callback(value, index, array1)中直接改变array1。

这个方法的作用就是:把数组组装成其他的形式,比如:对数组中的每一项加1,或者平方等等。

这里大家可以去区分下$("div"),jQuery对象的map方法,也很像,但是传参不一样,同时,回调方法调用时,传参也不一样。请仔细查看。

链接地址:http://www.cnblogs.com/chaojidan/p/4141413.html

indexOf方法:接收两个参数:searchElement:必需。 要在 array1 中定位的值。fromIndex:可选。 用于开始搜索的数组索引, 如果省略 fromIndex,则从索引 0 处开始搜索。 如果 fromIndex 大于或等于数组长度,则返回 -1。 如果 fromIndex 为负,则搜索从数组长度加上 fromIndex 的位置处开始。如果计算所得的索引小于 0,则搜索整个数组。数组元素将与 searchElement 值进行全等比较,与 === 运算符类似。

lastIndexOf:接收两个参数:searchElement:必需。 要在 array1 中定位的值。fromIndex:可选。 用于开始搜索的数组索引, 如果省略 fromIndex,则搜索将从数组中的最后一个索引处开始。 如果 fromIndex 大于或等于数组长度,则搜索整个数组。 如果 fromIndex 为负,则搜索从数组长度加上 fromIndex 的位置处开始。 如果计算所得的索引小于 0,则返回 -1。数组元素将与 searchElement 值进行全等比较,与 === 运算符类似。

最后就是一个很重要的方法,面试经常问到的方法:

replace方法:它会跟正则一起出题。它接收两个参数,比如:str.replace(str1,str2);

str1必需。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则只会替换一个。比如:"abbc".replace("b","d")  -> 返回"adbc"。

str2必需。规定了替换文本或生成替换文本的函数。

返回值,就是替换之后的字符串。原字符串不改变。

如果需要把匹配到的字符全部替换,需要使用正则"abbc".replace(/b/g,"d")   -> 返回"addc"。

replace() 方法的参数 str2可以是函数。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 str中出现的位置。最后一个参数是 str本身。

比如:"abcd".replace(/(a)(b)(c)/g,function(match,$1,$2,$3,index,str){  match:abc(匹配到的字符串),$1:a(匹配到的第一个子表达式),以此类推,如果没有子表达式,就不会有这些参数,就直接是index。  index:0(匹配到的字符串在原始字符串中的位置,也就是"abc"在"abcd"中的位置),最后一个是str:"abcd"(原始字符串)})

此方法功能很强大,推荐精读,有时可以让面试官眼前一亮。

 insertBefore方法

举个例子:

<ul id="ul"><li>1</li><li>2</li></ul>

var list = document.getElementById("ul");

list.insertBefore(newItem,list.childNodes[0]);第一个参数必选,插入的新节点。第二个参数可选,在其之前插入新节点。如果未规定,则 insertBefore 方法会在list结尾插入 newnode。

加油!

转载于:https://www.cnblogs.com/chaojidan/p/4142338.html

js原生方法传参的细节(面试必问)相关推荐

  1. JavaScript 方法传参

    <a href="#" onclick="sendEmail('${userId}','${userCname}')">发送</a> / ...

  2. xsl调用java方法传参_Java中的XSL转换:一种简单的方法

    xsl调用java方法传参 XSL转换 (XSLT)是将一个XML文档转换为另一个XML文档的强大机制. 但是,在Java中,XML操作相当冗长和复杂. 即使是简单的XSL转换,也必须编写几十行代码- ...

  3. java方法的传递方式_JAVA基础--方法传参

    JAVA基础--方法传参 为啥拿这个当话题? 在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然. 一.先说说参数传递的几个术语: 值调用(call by vale):表示方法接收的是调用 ...

  4. 在android 两个类之间 get,set方法传参使用

    2019独角兽企业重金招聘Python工程师标准>>> 最近在学习android,然后碰到一个继承自LinearLayout的类需要继承自Activity布局当中的一个值,同事告诉我 ...

  5. java方法传参机制

    核心思想: java传参只能按值调用,方法不可能修改基本数据类型的参数 方法可以改变对象参数的状态(即可以改变对象的属性,但是不可能改变对象的引用) 方法不可能让一个对象参数引用一个新的对象 /*** ...

  6. js 原生方法 -- 模拟浏览器的 点击事件

    js 原生方法 – 模拟浏览器的 点击事件 1. 创建自定事件并监听 可看看 MDN 的 Evnet, CustomEvent 对象 <!DOCTYPE html> <html la ...

  7. 线程同步有几种方法_架构师面试必问的多线程状态切换及常用方法

    架构师面试必问的多线程状态切换及常用方法 一.问题背景 Java架构师面试中,多线程状态切换及常用方法几乎是必问的,要掌握创建多线程的方式和方法. 二.创建多线程的几种方式 2.1方式一继承Threa ...

  8. java中的静态、动态代理模式以及Spring中的CgLib动态代理解读(面试必问)

    java中的静态.动态代理模式以及Spring中的CgLib动态代理解读(面试必问) 静态代理 动态代理 CgLib动态代理     基础知: 反射知识 代理(Proxy)是一种设计模式,提供了对目标 ...

  9. Android面试必问框架原理

    Android面试必问框架原理 volatile的实现原理 synchronized的实现原理 join方法实现原理 CAS无锁编程的原理 ReentrantLock的实现原理 AQS的大致实现思路 ...

最新文章

  1. 理解RESTful架构
  2. 2019年ACM团队预备赛(题解)
  3. html主动发起重新布局,重启连不上网
  4. 菜鸟学PHP之Smarty入门(组图)
  5. shopnc 支持 支付宝快捷登陆 shopnc权限验证原理说明
  6. C++结构体,联合体
  7. numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算
  8. 第10章 例题 7-4 汉诺(Hanoi)塔问题
  9. 探索比特币源码5-私钥
  10. 用程序解决所有文件的格式转换
  11. C++ 接收数量不定的函数参数
  12. OpenCV--fstream格式化读取坐标数据存为vector
  13. python爬取京东手机数据_实例解析Python如何实现爬取京东手机图片
  14. Python基础----列表
  15. 品质主管每日工作需要做哪些_游戏配音需要做哪些工作?
  16. Spring Cloud 服务治理
  17. 在线JSON转CSV格式文件工具
  18. JavaScript 日期和时间基础知识
  19. 牛客网 吉首大学2019年程序设计竞赛(重现赛)A: SARS病毒(矩阵快速幂 + 碰巧降幂)
  20. 合成大西瓜自制版教程

热门文章

  1. SP 短信开发-基础知识篇
  2. 制作win2000能用的 schtasks.exe
  3. 智能实验室-杀马(Defendio) 4.16.0.840
  4. 使用RSA私钥或pfx私钥签名String
  5. Could not GET “XXXXX.xml”Received status code 400
  6. html锚点(mao dian)--特殊的超链接
  7. 2017-9-13:学习笔记
  8. 《Apache Common CLI官方文档
  9. 创建 Monitor 并测试 - 每天5分钟玩转 OpenStack(124)
  10. 苏宁云仓投入使用,此时物流爆发是否来得及?