自己整理的js面试小题

文章详细解释了JavaScript中的同步与异步概念,以及Ajax在数据交互中的作用和优缺点。此外,还探讨了箭头函数与普通函数的不同,以及闭包的功能和特点。同时提到了Set和Map数据结构,以及new操作符的工作原理和this的指向规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,什么是同步异步

        同步:在JavaScript中 同步就是先执行完上层代码 在执行下层代码一步一步执行

        异步:可以同时执行的代码

2,程序进程线程

        程序:功能

        进程:进程不是程序,是进程执行的过程

        线程:程序执行过程中开启的每个分支,多线程异步可以提高进程的效率

3,什么是Ajax

        Ajax是前后端数据交互的重要手段,使用Ajax可以 无刷新状态 更新页面,并且实现异步提交,极大提升了用户体验

     Ajax的优缺点

        1-不需要插件支持

        2-用户体验感强(无刷新状态更新页面)

        3-提升web程序的性能(传递数据可做到按需发送,不必整体提交)

4,箭头函数与普通函数的区别

        1-没有自己的this

        2-语法极简,当只传入一个参数时可省略小括号,只有一个返回值是可省略 { }

        3-不能被new执行

        4-不能使用Arguments

5,什么是伪数组

        1-不能使用数组的方法

        2-按照索引方式存储数据

        3-具有length属性

6,什么是闭包函数

        1-创建一个不会被销毁的作用域执行空间

        2-直接或间接返回一个函数

        3-外部有变量接收到返回的复杂数据

        4-返回的这个函数使用了外部函数的局部变量

        (闭包就是能够访问其他函数的局部变量的函数)

7,闭包的特点

        1-可以在函数外部控制内部的变量

        2-避免全部变量的命名污染

        3-延长了变量的生命周期

        4-存在不会被销毁的执行空间 (低版本会造成内存溢出)

8,set 和 map

        set 是无序无重复的值集合

               1. 所得元素的只有key没有value,value就是key

                2.不允许出现键值重复

                3.所有的元素都会被自动排序

        map 是无序无重复的值值对集合

               1.所有元素都是键+值存在

                2.不允许键重复

                3.所有元素是通过键进行自动排序的

                4.map的键是不能修改的,但是其键对应的值是可以修改的

9,new 的原理

        1-创建一个新对象

        2-改变函数内的this指向为这个新函数

        3-执行函数内的代码,并将新函数的_ _prototype_ _ 指向新函数的 prototype

        4-检查是否返回新函数,如果没有则返回这个新对象(this)

10,观察者模式(订阅者模式)

        定义了一种一对多的关系,多个观察者对象同时监听同一个主题对象,这个主体对象发生变化时会通知所有的观察者对象,使他们能够自动更新自己

11,this指向问题

        谁执行了this所在的函数 this就是谁

        1-默认绑定:没有明确的隶属对象,被直接调用时this 指向window ,严格模式下为 undefined 

        2-隐式绑定:有明确隶属对象,this指向该对象

        3-显示绑定:call,aplay,bind 强制绑定改变this指向 第一个参数改变this指向

        4-构造函数绑定:new绑定

                1-创建一个新对象

                2-改变函数内的this指向为这个新函数

                3-执行函数内的代码,并将新函数的_ _prototype_ _ 指向新函数的 prototype

                4-检查是否返回新函数,如果没有则返回这个新对象(this)

12,call,apply,bind 的区别

        第一个参数都是改变this的指向

        call 可以有多个参数,返回值以原函数的返回值为主

        apply 第二个参数只能是数组,自动解析作为参数

        bind 可以有多个参数,返回值是改变this指向后的新函数

        

13,什么是原型链

        对象从原型继承属性的过程

        现在自身查找,找不到去父级查找,依次向上,直到找到  或 为 null结束

14,原型对象

        原型是function 对象的一个属性 它定义了构造函数制作出的对象的公共祖先,通过改构造函数产生的对象,可以继承改原型的属性和方法 原型也是对象 ,所有的原型对象都是由 object构造函数创建出来的

15,原型

        原型是一个对象,是函数的一个属性 prototype,通过该函数实例化出来的对象都可以继承得到原型上所有的属性和方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值