面试经验谈 OKcoin前端面试

原创 2018年04月17日 18:17:13

问题
面试了Okcoin 的前端工程师 Hr很好 具体问了些深入的问题 要求明白web开发中各种背后的机制
不能只会用
要建立起完善的知识体系结构
1,Css position有哪些属性 具体解释
2,Js闭包
实际是为了访问函数内定义的数据

3,React的了解程度
4,Meta标签的意义
5,Img标签中 alt title的意义
6,页面的重排和重绘
7,如何理解web语意化
8,行内元素与块级别元素
9,ES6的新特性有哪些
10,Css如何制作一个三角形
这里写图片描述

.box
        {
            width:0px;
            height:0px;

            border-top:50px solid red;
            border-right:50px solid yellow;
            border-bottom:50px solid green;
            border-left:50px solid pink;
            }

11 如何不借助第三个值交换两个数

int x,y;

x=x+y;

y=x-y;

x=x-y;//上述一般可以满足,但是有时候x+y或许或出现上溢或者下溢。

交换律:x^y=y^x

结合律:x^(y^z)=(x^y)^z

1 x=x^y;
2 
3 y=x^y;//实际意思y=(x^y)^y;
4 
5 x=x^y;//实际意思x=(x^y)^x;

12 斐波那契数列

var n=parseInt(prompt('请输入一个数字'));
var a1=1;
var a2=1;
var a3=0;
for(var i=2;i<=n;i++){//因为前两个数都是1,所以要从i=2开始,就是前两个数的1+1=2,i的初始值其实是第三个数
a3=a1+a2;//第三个数等于第一个数加上第二个数
a1=a2;//第一个数就变成了之前的第二个数
a2=a3;//第二个数就变成了刚刚的第三个数
}

int Fibonacci(int n, int a, int b) {
if (n<=2) {
return b;
}
else {
return Fibonacci(n-1, b, a+b);
}
}
13 Js的深拷贝

var a = {
    name : { age : 100 }
};

var str = JSON.stringify(a);

var b = JSON.parse(str);

b.name.age = 200;

alert( a.name.age ); //100

14 SPA 框架
单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用。它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML、JavaScript 和 CSS。一旦页面加载完成了,SPA不会因为用户的操作而进行页面的重新加载或跳转。而是利用 JavaScript 动态的变换HTML的内(采用的是div切换显示和隐藏),从而实现UI与用户的交互。由于避免了页面的重新加载,SPA 可以提供较为流畅的用户体验。得益于ajax,我们可以实现无跳转刷新,又多亏了浏览器的histroy机制,我们用hash的变化从而可以实现推动界面变化。

angularJS,是目前中最流行的mvvm框架,非常适合做SPA;与之类似的还有vueJS,backbone,extjs等。

`window.onhashchange = function(){ //监听hash值变化,实现页面变换
  var hash=window.location.hash;
  changePage(hash);
}

function changePage(hash){
  switch (hash)
  {
  case ‘#index’:
    url=’partials/list.html’;
    break;
  case ‘#newpage’:
    url=’partials/newpage.html’;
    break;
  case ‘#edit’:
    url=’partials/edit.html’;
    break;
  case ‘#view’:
    url=’partials/view.html’;
    break;
  }

  $.ajax({ //根据hash值选择页面
    type:’GET’,
    url:url,
    //async:false,
    success:function(data){
      main.innerHTML=data;
     }
  });
}`
15 事件冒泡

window.onload = function(){
              var oUl = document.getElementById("ul1");
              oUl.onclick = function(ev){
                    var ev = ev || window.event;
                    var target = ev.target || ev.srcElement;
                    if(target.nodeName.toLowerCase() == 'li'){
                            alert(123);
                 alert(target.innerHTML);
                    }
              }
        }

16 链式调用

function A(num) {
this.value = num || 0; //不做传参校验了
}
.prototype.add = function(a) {this.value += a; return this;}
A.prototype.reduce = function(a) {this.value -= a; return this;}
18 原生js实现ajax
var Ajax={
get: function(url, fn) {
var xhr = new XMLHttpRequest(); // XMLHttpRequest对象用于在后台与服务器交换数据
xhr.open(‘GET’, url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) { // readyState == 4说明请求已完成
fn.call(this, xhr.responseText); //从服务器获得数据
}
};
xhr.send();
},
post: function (url, data, fn) { // datat应为’a=a1&b=b1’这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式
var xhr = new XMLHttpRequest();
xhr.open(“POST”, url, true);
xhr.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”); // 添加http头,发送信息至服务器时内容编码类型
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) { // 304未修改
fn.call(this, xhr.responseText);
}
};
xhr.send(data);
}
}
https://www.cnblogs.com/colima/p/5339227.html

OKCoin创始人兼CEO徐明星已辞去高管职位,赵长鹏发文称币安系统遭严重攻击 | 区块链日报

2018-02-11 枭枭【赵长鹏发文回顾币安系统维护细节,并于今日12:00开始系统升级维护】  今天凌晨,赵长鹏长文回顾了前两日币安维护过程中的细节:2月8日上午在进行数据库迁移时,由于硬件故障导...
  • tuoluocaijing
  • tuoluocaijing
  • 2018-02-12 09:02:31
  • 150

前端面试宝典

  • 2017年09月20日 10:38
  • 31B
  • 下载

前端面试总结

  • 2018年03月27日 13:58
  • 23KB
  • 下载

Java程序员 面试经验谈

  • 2012年01月31日 14:49
  • 1.46MB
  • 下载

程序员面试

  • 2015年04月25日 22:22
  • 1.37MB
  • 下载

前端面试之HTML篇

1、的作用? 声明必须是 HTML 文档的第一行,位于 标签之前。 声明不是 HTML 标签;是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的...
  • donggx
  • donggx
  • 2017-06-12 15:11:36
  • 824

2016十家公司前端面试小记

2016十家公司前端面试小记 目录 前言 手写事件模型及事件代理/委托 前端性能优化 闭包原理及应用 手写F...
  • fengyinchao
  • fengyinchao
  • 2016-02-25 21:57:59
  • 1239

前端web优化和js常见面试内容整理

web前端优化(SEO) 1.   减少HTTP请求。 CSSSprites,最常用的方式。 图片地图: map标签定义一个客户端图像映射,图像映射(image-map)指带有可点击区域的一幅图...
  • wen2017
  • wen2017
  • 2018-01-08 13:09:17
  • 146

web前端面试准备

准备个非qq邮箱掌握git基本使用成为github用户克隆几个流行的轮子demo 推荐vue的搭建github 博客,写点学习笔记(可以看利用hexo搭建github个人博客遇到的坑及解决)找点cs丛...
  • QaiDd
  • QaiDd
  • 2017-04-20 15:28:43
  • 479

Web前端面试指导(五):掌握面试技巧,让面试变得轻松

5.1 面试形式 1)        一般而言,小公司做笔试题;大公司面谈项目经验;做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好、自信、谦虚、善于沟通、表达。 ...
  • lxcao
  • lxcao
  • 2016-09-21 15:06:53
  • 5127
收藏助手
不良信息举报
您举报文章:面试经验谈 OKcoin前端面试
举报原因:
原因补充:

(最多只允许输入30个字)