JavaScript面试题简解

本文主要探讨了JavaScript面试中常见的问题,包括GET请求参数限制、GET与POST的缓存区别、闭包概念、类的创建与继承、解决异步回调地狱的方法、事件流机制、事件委托、图片懒加载和预加载的原理,以及mouseover与mouseenter的区别。此外,还讨论了new操作符的作用、改变函数内部this指针的方法、DOM属性的区别、拖拽功能的实现、异步加载JS和Ajax的缓存解决方案,以及JavaScript中的节流和防抖技术。文章还涵盖了JavaScript垃圾回收机制、eval的用途、前端模块化理解,以及CommonJS、AMD和CMD规范的简介。
摘要由CSDN通过智能技术生成

1.get 请求传参长度的误区

  • 误区:我们经常说 get 请求参数的大小存在限制,而 post 请求的参数大小是无限制的。
  • 实际上 HTTP 协议从未规定 GET/POST 的请求长度限制。
  • 对 get 请求参数的限制 是来源与浏览器或 web 服务器,浏览器或 web 服务器限制了 url 的长度。 HTTP 协议 未规定 GET 和 POST 的长度限制 GET 的最大长度显示是因为 浏览器和 web 服务器限制了 URI 的长度 不同的浏览器和 WEB 服务器,限制的最大长度不一样 要支持 IE,则最大长度为 2083byte,若只支持 Chrome,则最大长度 8182byte

2.get 和 post 请求在缓存方面区别

  • get 类似查找的过程,用户获取数据,可以不用每次都与数据库连接,所以可以使用缓存。
  • post 做的一般是修改和删除的工作,所以必须与数据库交互,所以不能使用缓存。因此 get 请求适合于请求缓存

3.说一下闭包

一句话可以概括:闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用, 子函数所在的父函数的作用域不会被释放

4.类的创建和继承

(1)类的创建(es5):new 一个 function,在这个 function 的 prototype 里面增加属性和 方法。 下面来创建一个 Animal 类:

     // 定义一个动物类

     function Animal (name) {

     // 属性 this.name = name || 'Animal'; // 实例方法

    this.sleep = function(){ console.log(this.name + '正在睡觉!'); }

}

// 原型方法

Animal.prototype.eat = function(food) { console.log(this.name + '正在吃:' + food); };

这样就生成了一个 Animal 类,实力化生成对象后,有方法和属性

(2)类的继承——原型链继承 --原型链继承

function Cat(){ }

   Cat.prototype = new Animal();

   Cat.prototype.name = 'cat';

    // Test Code

    var cat = new Cat();

     console.log(cat.name);

     console.log(cat.eat('fish'));

     console.log(cat.sleep());

     console.log(cat instanceof Animal); //true

     console.log(cat instanceof Cat); //true

5.如何解决异步回调地狱

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值