Javascript

87 阅读2分钟

Javascript 相关

1.Js 基本数据类型有哪些

2.Ajax 如何使用

通用的ajax请求库, 官方推荐, vue2.x使用广泛

image.png

3.如何判断一个数据是 NaN

5.闭包是什么?有什么特性?对页面会有什么影响

image.png

6.Js 中常见的内存泄漏:

7.事件委托是什么?如何确定事件源(Event.target 谁调用谁就是事件源)

image.png

8.什么是事件冒泡?

9.本地存储与 cookie 的区别

image.png

10.ES6 新特性

image.png

11.Let 与 var 与 const 的区别

12.数组方法有哪些请简述

image.png

13.Json 如何新增/删除键值对

14.什么是面向对象请简述

15.普通函数和构造函数的区别

16.请简述原型/原型链/(原型)继承

image.png

image.png

17.Promise 的理解

image.png

18.我们用 Promise 来解决什么问题?

19.请简述 async 的用法

image.png

20.. 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

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

22.补充 get 和 post 请求在缓存方面的区别

23.说一下闭包

24.说说前端中的事件流

image.png

25.说一下事件委托

26.JS 的 new 操作符做了哪些事情

27.改变函数内部 this 指针的指向函数(bind,apply,call 的区别)

image.png

28.JS 的 各 种 位 置 , 比 clientHeight,scrollHeight,offsetHeight , 以 及 scrollTop,

clientHeight:表示的是可视区域的高度,不包含 border  和滚动条

offsetHeight : 表示可视区域的高度, 包含了 border   和滚动条

offsetTop,clientTop 的区别?

clientTop : 表示边框 border 的厚度, 在未指定的情况下一般为0

offsetTop:到开了定位的父级元素的顶部的距离(偏移

29.JS 拖拽功能的实现

30.JS 中的垃圾回收机制

31.JS 监听对象属性的改变

32.自己实现一个 bind 函数

原理:通过 apply 或者call 方法来实现。
(1)初始版本
Function.prototype.bind=func tion(obj,arg){
    var arg=Array.prototype.slice.call(arguments,1);
    var context=this;
    return
    function(newArg){ 
        arg=arg.concat(Array.prototype.slice.call(newArg)); 
        return context.apply(obj,arg);
    }
}

(2) 考虑到原型链
为什么要考虑?因为在 new 一个bind 过生成的新函数的时候,必须 的 条 件 是 要 继 承 原 函 数 的 原 型
Function.prototype.bind=function(obj,arg){
    var arg=Array.prototype.slice.call(argu ments,1); var context=this;
    var bound=function(newArg){ 
        arg=arg.co ncat(Array.prototype.slice.call(newArg)); 
        return context.apply(obj,arg);
    }
    var F=function(){}

    //这里需要一个寄生组合继承F.prototype=context. prototype; bound.prototype=ne w F(); return bound;
}

33.JS 怎么控制一次加载一张图片,加载完后再加载下一张

34.实现 JS 中所有对象的深度克隆(包装对象,Date 对象,正则对象)

35.来讲讲 JS 的闭包吧

36.能来讲讲 JS 的语言特性吗

37.JS 的全排列