博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018美团前端,有关Javascript的面试题
阅读量:5075 次
发布时间:2019-06-12

本文共 2049 字,大约阅读时间需要 6 分钟。

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

  • 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

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

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会不会引起?

转载于:https://www.cnblogs.com/vsmart/p/8889163.html

你可能感兴趣的文章
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>
会计电算化常考题目一
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
bcb ole拖拽功能的实现
查看>>
生活大爆炸之何为光速
查看>>
bzoj 2456: mode【瞎搞】
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
[GraphQL] Reuse Query Fields with GraphQL Fragments
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>