文档章节

有关Javascript的面试题

Jack088
 Jack088
发布于 2018/12/04 17:28
字数 590
阅读 25
收藏 3

获取页面元素位置与宽高?

  • element.clientWidth = content + padding
  • element.clientHeight = content + padding
  • element.getBoundingClientRect() 返回值情况
    • left:包围盒左边 border 以外的边缘距页面左边的距离
    • right:包围盒右边 border 以外的边缘距页面左边的距离
    • top:包围盒上边 border 以外的边缘距页面顶部的距离
    • bottom:包围盒下边 border 以外的便于距页面顶部的距离
    • width: content + padding + border
    • height: content + padding + border
    • 注意,设置外边距时外边距合并的情况

requestAnimationFrame 原理?是同步还是异步?

异步,传入的函数在重绘之前调用

js事件机制?点击屏幕上一个按钮,事件是如何传播的?

冒泡

下面代码输出结果?为什么?

Function.prototype.a = 'a';
Object.prototype.b = 'b';
function Person(){};
var p = new Person();
console.log('p.a: '+ p.a); // p.a: undefined
console.log('p.b: '+ p.b); // p.b: b

ps: //Object.prototype就是实例 是全被继承的

下面代码输出结果?为什么?

const person = {
  namea: 'menglinghua',
  say: function (){
    return function (){
      console.log(this.namea);
    };
  }
};
person.say()(); // undefined
const person = {
  namea: 'menglinghua',
  say: function (){
    return () => {
      console.log(this.namea);
    };
  }
};
person.say()(); // menglinghua

下面代码输出结果?为什么?

setTimeout(() => console.log('a'), 0);
var p = new Promise((resolve) => {
  console.log('b');
  resolve();
});
p.then(() => console.log('c'));
p.then(() => console.log('d'));
console.log('e');
// 结果:b e c d a
// 任务队列优先级:promise.Trick()>promise的回调>setTimeout>setImmediate
async function async1() {
    console.log("a");
    await  async2(); //执行这一句后,await会让出当前线程,将后面的代码加到任务队列中,然后继续执行函数后面的同步代码
    console.log("b");

}
async function async2() {
   console.log( 'c');
}
console.log("d");
setTimeout(function () {
    console.log("e");
},0);
async1();
new Promise(function (resolve) {
    console.log("f");
    resolve();
}).then(function () {
    console.log("g");
});
console.log('h');
// 谁知道为啥结果不一样?????????????
// 直接在控制台中运行结果:      d a c f h g b e
// 在页面的script标签中运行结果:d a c f h b g e

js bind 实现机制?手写一个 bind 方法?

function bind(fn, context){
  return function (){
     return fn.apply(context, arguments);
  }
}

实现 vue 中的 on,emit,off,once,手写代码。

用 js 实现双链表,手写代码?

vue 的双向绑定机制?详细介绍。

哪些操作会引起浏览器重绘和重排?

  • postion:absolute; left:100px;会不会引起?
  • translateX:100px;会不会引起?
  • getBoundingClientRect会不会引起?
  • getClientWidth、getClientHeight会不会引起?

ps:

http://www.cnblogs.com/yuri2016/p/6542625.html

本文转载自:https://www.cnblogs.com/vsmart/p/8889163.html

Jack088
粉丝 45
博文 565
码字总数 90026
作品 0
扬州
程序员
私信 提问
前端面试题关于JavaScript 这些你都会吗?

昨天我们一起分享了关于html和css的面试题《前端面试题之Html和CSS》,今天我们来分享关于javascript有关的面试题。我面试的时候最害怕面试官问我js了,因为我真心不擅长这个。不过我在努力的...

VIP_web
2018/06/26
0
0
四月前端知识集锦(每月不可错过的文章集锦)

目前自己组建的一个团队正在写一份面试图谱,将会在七月中旬开源。内容十分丰富,第一版会开源前端方面知识和程序员必备知识,后期会逐步写入后端方面知识。因为工程所涉及内容太多(目前已经...

夕阳
2018/05/02
0
0
前端面试&笔试&错题指南(三)

JavaScript排坑指南(三) JavaScript总是给人以惊喜,学习不止,进步不断,今天继续补充JS容易搞错的几道笔试/面试题,为了秋招继续努力,欢迎一起为秋招努力的小伙伴共勉 ------------------...

Vincent Ko
2018/08/12
0
0
阿里巴巴Web前端开发面试题赋答案

最近发现阿里巴巴的Web前端开发面试题,共分三部分:CSS部分,JavaScript部分,紧急处理部分,分享给大家做个参考~ 第一部分:用CSS实现布局 让我们一起来做一个页面 首先,我们需要一个布局...

Qianduaner
2013/09/06
945
0
使用JavaScript ES6的新特性计算Fibonacci(非波拉契数列)

程序员面试系列 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Java Marker Interface(标记接口) 使...

Mr_zebra
2018/09/04
9
0

没有更多内容

加载失败,请刷新页面

加载更多

一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

一、前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 controll...

郑清
31分钟前
2
0
javascript-十六进制随机颜色

<script> // 编写一个函数,获得一个十六进制的随机颜色的字符串(如#20CD4F) // function randomColor(){ // var r = random(0,255).toString(16); // var g = random(0,255).toString(16......

ACKo
33分钟前
2
0
springBoot +mybatis 出现sql 语句在数据库可以查询到,但是赋值到实体类上就没有的情况?

1.不要老是反复查看自己是否写错了,为啥有的能出来有的出不来? 可以查看配置文件中是否配置全: 如果在application.yml 文件中是如下配置: mybatis: mapper-locations: classpath:mapp...

kuchawyz
46分钟前
2
0
正则表达式

一、RegExp对象 进行验证和查找的API 1、创建对象: (1)用/创建(直接量):var reg=/正则/ig,表达式固定不变时使用 (2)用new创建:var reg=new RegExp(‘正则’,‘ig’),表达式需要...

wytao1995
46分钟前
2
0
实战限流(guava的RateLimiter)

关于限流 常用的限流算法有漏桶算法和令牌桶算法,guava的RateLimiter使用的是令牌桶算法,也就是以固定的频率向桶中放入令牌,例如一秒钟10枚令牌,实际业务在每次响应请求之前都从桶中获取...

程序员欣宸
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部