面试准备——js部分(一)

作者: 巩小白 | 来源:发表于2018-04-10 10:00 被阅读63次

1、写一个能遍历对象和数组的通用forEach函数?

  var key;
  if(obj instanceof Array){
    obj.forEach(function(item,index){
        fn(index,item)
    })
  }else{
    for(key in obj){
        fn(key,obj[key])
    }
  }
}

2、JavaScript 中如何获取当前的时间戳

Date.now()

new Date().getTime()

+new Date()

3、手写ajax

var xhr=new XMLHttpRequest()
xhr.open('GET','/api',false);
xhr.onreadtstatechange = function(){
  if(xhr.readyState==4 && xhr.status==200){
        conse.log(xhr.responseText)
    }
}
xhr.send(null);

4、跨域

原因:同源策略,cookie、localstorage、indexdb无法读取、dom无法操作、ajax无法发送
前后端通信方式:ajax、websocket、CORS
解决:
JSONP:网页动态插入<script>元素由它向跨源网址发出请求,服务器收到请求后,
将数据放在一个指定名字的回调函数里传回来。只能发get请求
window.postMessage:window对象新增了一个方法,允许跨窗口通信
CORS:跨源资源共享。服务器配置
websocket:是HTML5提供的一种在单个 TCP 连接上进行全双工通讯的协议。
Nginx反向代理

箭头函数有几个使用注意点。

(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。

(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。

上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。

1、
function foo() {
  setTimeout(() => {
    console.log('id:', this.id);
  }, 100);
}
var id = 21;
foo.call({ id: 42 });
// id: 42
2、
function foo() {
  setTimeout(function() {
    console.log('id:', this.id);
  }, 100);
}
var id = 21;
foo.call({ id: 42 });
// id: 21

相关文章

  • 面试准备——js部分(一)

    1、写一个能遍历对象和数组的通用forEach函数? 2、JavaScript 中如何获取当前的时间戳 3、手写a...

  • 前端面试路遥遥

    1、阅读简历 2、面试问题准备 2.1、html部分 2.2、css部分 2.3、js部分 2.4、框架部分部分 ...

  • 前端相关大杂烩

    前端基础面试题(JS部分) 前端基础面试题(JS部分)学习 React.js 比你想象的要简单 原文地址:Lear...

  • 通信网络篇

    1、跨域的原因以及解决方式那天写在了《面试准备之JS篇》442、xss csrf攻击原理那天写在了《面试准备之JS...

  • js高级部分 面试

    BOM部分 DOM事件 Promise和async/awiat 防抖与节流 BOM 浏览器的内核 IE: trid...

  • 面试准备之JS

    常规题目 1.渐进增强和优雅降级 优雅降级:一开始就构建整个网站的完整功能,然后针对低版本浏览器进行兼容。渐进增强...

  • js面试准备总结

    null 类型本质上是一个特殊的object 数据判断题目 几种undefined的情况 声明了变量 但没赋值时 ...

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

  • JS\jQuery\XML部分 面试题

    http://blog.duywl.com/java/jsjqueryxml部分-面试题/ (一)JS\jQuer...

  • 前端面试js部分

    一、变量类型 1.值类型 2.引用类型 1)包括:对象,数组,函数。2)特点:1.无限扩展属性(为了与内存共用空间...

网友评论

    本文标题:面试准备——js部分(一)

    本文链接:https://www.haomeiwen.com/subject/nescvxtx.html