二,JavaScript面试题总结

1,首先是数组去重算法:给一个数组,去掉重复值

(function() {
var arr = [1, 2, 3, 3, 4, ]; function unique() {
var result = [];
var tem = {};
for (var i = 0; i < arr.length; i++) {
if (!tem[arr[i]]) {
result.push(arr[i]);
tem[arr[i]] = 1;
}
}
return result;
}
})();

2,多维数组,至少3层的遍历,将数组整合一维数组,网上给出的方案

 //遍历多维数组
var arr = [1, 2, 3, [4, [5, [6]]]]; // arr.length Array.prototype.each = function(fn) {
try {
//1 目的: 遍历数组的每一项 //计数器 记录当前遍历的元素位置
this.i || (this.i = 0); //var i = 0 ;
//2 严谨的判断什么时候去走each核心方法
// 当数组的长度大于0的时候 && 传递的参数必须为函数
if (this.length > 0 && fn.constructor == Function) {
// 循环遍历数组的每一项
while (this.i < this.length) { //while循环的范围
//获取数组的每一项
var e = this[this.i];
//如果当前元素获取到了 并且当前元素是一个数组
if (e && e.constructor == Array) {
// 直接做递归操作
e.each(fn);
} else {
//如果不是数组 (那就是一个单个元素)
// 这的目的就是为了把数组的当前元素传递给fn函数 并让函数执行
//fn.apply(e,[e]);
fn.call(e, e);
}
this.i++;
}
this.i = null; // 释放内存 垃圾回收机制回收变量
} } catch (ex) {
// do something
}
return this;
}

3,获得url查询参数方案

1)一个是用正则表达式方法

//获取url参数
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
//js match返回的是一数组
var r = location.search.substr(1).match(reg);
if (r != null) {
return r[2];
} else {
return null;
} }

2)另外一种就是利用split结合数组遍历实现,这个比较容易实现就不贴代码了

4,正则表达式去掉空格

/**去掉字符串前后所有空格*/
function trim(str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}

5,闭包的概念考察

6,原型继承如何实现,原型继承有两种方案

1)第一种是利用prototype

 var obj={name:'seven'};
var a=function(){};
a.prototype=obj; var aa=new a();
alert(aa.name);

2)第二种是利用apply或者call

function people(name,age){
//属性
this.name=name;
this.age=age;
//方法
this.show=function(){
console.log("my name is"+this.name+" and I am "+this.age+" years old");
};
} function student(name,age,school){
people.apply(this,arguments);
this.school=school;
this.showYourself=function(){
console.log("my name is"+this.name+" and I am "+this.age+" years old"+" my school is"+ this.school);
};
} var tom=new student('tom','19','xtu');
tom.showYourself();

7,ES6常用知识点考察

JavaScript部分就到这。

最近面试js部分试题总结的更多相关文章

  1. 2019前端面试系列——JS面试题

    判断 js 类型的方式 1. typeof 可以判断出'string','number','boolean','undefined','symbol' 但判断 typeof(null) 时值为 'ob ...

  2. 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~

    2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...

  3. 10个常见的Node.js面试题

    如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. ...

  4. 收藏所用C#技术类面试、笔试题汇总

    技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...

  5. vue.js面试题整理

    Vue.js面试题整理 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务 ...

  6. 一道JS面试题引发的血案

    刚入职新公司,属于公司萌新一枚,一天下午对着屏幕看代码架构时. BI项目组长给我看了一道面试别人的JS面试题. 虽然答对了,但把理由说错了,照样不及格. 话不多说,直接上题: var a = 1; s ...

  7. Node.js面试题

    Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听80端口? 什么是事件循环? 哪些工具可以用来保证一致的编程风格? 什么是测试金字塔?对于HTTP API ...

  8. [ 转载 ] vue.js面试题一

    转载自:https://www.cnblogs.com/aimeeblogs/p/9501490.html 如有侵权 联系删除 Vue.js面试题整理 一.什么是MVVM? MVVM是Model-Vi ...

  9. 一道经典JS面试题

    超过80%的候选人对下面这道JS面试题的回答情况连及格都达不到.这究竟是怎样神奇的一道JS面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示? 不起眼的开始 招聘前端工程师,尤其是中高级前端 ...

随机推荐

  1. python应用:爬虫框架Scrapy系统学习第二篇——windows下安装scrapy

    windows下安装scrapy 依次执行下列操作: pip install wheel pip install lxml pip install PyOpenssl 安装Microsoft visu ...

  2. Python基本语法元素

      静态语言(C/C++.Java):脚本语言(python.JavaScript.PHP) IPO(Input.Process.Output) #:python中的注释符号:'''    ''':多 ...

  3. URL和报文知识总结 ——1

    第一部分:浏览器生成的消息 关键词:URL的解析  HTTP请求的生成  DNS服务器 1.URL(网址)的构成: 对于一个网址的解析: https://i.cnblogs.com/index.htm ...

  4. 谁能笑到最后,约瑟夫环-Josephus问题求解

     一. 简述Josephus问题 N个人站成一环,从1号开始,用刀将环中后面一个人“消灭“”掉,之后再将刀递给下一个人,这样依次处理,最后留下一个幸存者. 二. 求解方法  1.  约瑟夫问题如果使用 ...

  5. SAX-xml解析

    <?xml version="1.0" encoding="UTF-8"?><bookstore> <book id=" ...

  6. Ruby on Rails Tutorial 第2版 学习笔记

    Ruby on Rails Tutorial 第2版 在线阅读:http://railstutorial-china.org/ 英文版:http://ruby.railstutorial.org/ru ...

  7. stm32 nucleo系列开发板的接口

    1. 首先说的是 Arduino接口,所有的nucleo系列都支持这个接口,而且像F767这种尺寸长的板子也有的,不过是双排排针,其实就是外侧也是 Arduino接口 2. 板子接上电脑之后有个串口

  8. 海思NB-IOT的SDK看门狗的使用

    1. 看门狗需要喂狗,如果自己写的任务一直运行,那么空闲任务无法运行会导致看门狗复位,来看下看门狗的机制,首先系统启动的时候创建了空闲任务 在这个函数里面void vTaskStartSchedule ...

  9. android分析windowManager、window、viewGroup之间关系(一)

    本文将主要介绍addview方法,在windowManager.window.viewGroup中的实现原理.首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数wind ...

  10. 2019年猪年海报PSD模板-第一部分

    14套精美猪年海报,免费猪年海报,下载地址:百度网盘,https://pan.baidu.com/s/1i7bIzPRTX0OMbHFWnqURWQ