前端学科面试题大全

2023-11-19

作用域和值类型引用类型的传递

(变量作用域(作用域变量访问区域,变量值存在栈中,变量赋值相当于值赋值,)&值传递与引用传递有哪些区别(函数内部,变量会先声明,形式参数变量声明提升,整个函数体有var声明的变量,如果没有访问全局定义的num2)&函数作用域和块作用域(JS作用域分为函数作用域与全局作用域,访问全局的num1没有修改过还是55,num2访问全局的为100,全局如果没有声明num会报错)&提升 &console.log方法)

(以工厂函数取代构造函数(声明变量,通过构造函数创建对象,对象创建其中一种就是构造函数创建对象)&对象去哪儿:辨清Java堆(通过构造函数创建对象,变量存放对象在堆内存的地址,栈中存放地址与堆进行关联,)&了解形式参数和实际参数(两个变量person和p都指向同一个堆内存地址,)&不存在变量提升&使用new关键字调用构造器创建对象(new会在堆内存重新创建对象,会重新开辟一个空间,形成新的一个空间,person指向新的空间,与p没有关系))

封装函数进行字符串驼峰命名转换

(用驼峰法命名属性(split根据横向切割,每一次拿到不同元素再做拼接转换,每一次重新复制给自己的元素对应的索引)&)

冒泡排序

(冒泡排序(一轮比较中找到该数组中的最大值,最后一轮只用比较1次,比较轮数当前数组长度减1,外循环控制轮数,内循环每一轮进行比较次数arr.length-1-i,)&)

 

反转数组

 

(用数组反转字符串(交换次数元素个数的一般,第一个和最后一个交换,第二个元素和倒数第二个元素交换, 1 arr.length-1-i )&)

去掉数组中重复性数据

(访问数组&length属性与length()方法有什么区别(定义一个新数组,只有一个元素为第一个元素,遍历原数组与新数组比较如果相同不插入,) &break和continue语句&插入数据)

物理像素

flex元素水平垂直剧中哦

css实现三角形

rem适配

背景图片距离

js综合面试题

函数提升(变量与函数会整体提升,变量提升只是声明提升默认undefined与函数提升是整体提升,如果变量与函数名称冲突,保留函数忽略变量,Foo().getName()运算符优先级关系,点运算符优先级最高,先执行Foo()函数,getName()没有var定义按照作用域链找,在全局找并将全局getName改变为函数内部的方法 )&变量提升&继承和prototype&表达式语法之运算符(点优先级最高,Foo()括号不能点调用,先求出括号值再去点调用,实例对象按照隐式原型_proto_找对应的属性,如果找不到prototype最后去Object的隐式原型属性找,如果找不到返回undefined。自身属性没有定义属性,实例对象隐式原型属性指向构造函数显示原型属性Foo.prototype.getName,找到对应的getName方法)& let取代var &延长作用域链&this和对象原型&优先级&类的实例对象(this指向当前调用函数的对象,直接调用是window.this找)&原生构造函数的继承

函数节流与防抖

(函数节流(函数节流一个函数执行一次后,只有大于设定的执行周期才会执行第二次,对于频繁触发的函数对性能不太好,规定时间内只让函数触发的第一次生效,后面不生效)&闭包(函数内返回一个函数,通过闭包的方式lastTime一直记录是上一次的时间,不会每次初始化都是0)&动画回调函数&使用apply或call实现伪继承(this指向问题,fn.call(this)将当前函数的this传入到fn中,修正this指向问题)&抖动(防抖函数,一个需要频繁触发的函数在规定的时间内,只让最后一次生效,前面不生效)&setTimeout& let取代var(记录上一次定时器,每一次timer初始化为null记录不了,要return function(){ }定义闭包同时修正this指向问题,)&for、let和return子句

跨域

(协议解析&什么是跨域&JSONP&实现跨域之CORS (同源策略,浏览器安全策略保证浏览器可以安全运行的策略,要求网络中的协议名域名好端口号必须完全一致,违背同源策略就会产生跨域。不同服务器提供不同功能,多台服务器对应域名都不一样,可以通过JSONP和CORS解决跨域问题。JSONP利用script标签天然跨域的特性,请求将参数传递过去,请求成功自动调用getData函数执行逻辑处理接收的数据)&创建标签文件用作HTML模板&JavaScript概述&Body元素

nodejs时间轮询机制

(轮询(三者执行顺序,三个都是立即执行函数,执行顺序与函数位置没关系。首先检查定时器是否到点,没有到点往下走知道poll阶段,把回调函数从轮询队列中取出来依次执行,执行到为空判断是否设置setImediate函数,如果设置则执行该函数,轮询机制相当于死循环无限循环,如果没有设置会在poll阶段一直停留知道轮询队列添加新的对象继续执行。如果定时器到点了也会到达check阶段。Process.nextTick能在任意阶段优先执行)&)

从url输入网址

(自定义DNS和上游DNS服务器(从一个url地址到网页渲染完成,一共分为6个部分,首先进行DNS解析,将域名解析为IP地址,先读取浏览器DNS缓存,如果有使用,如果没有去系统计算机DNS缓存读取找到ip地址,还没有会去路由器查看,之后去网络运营商DNS缓存查看,还找不到最后会去递归搜索blog.baidu.com先去com域名下查找对应DNS解析,之后去.百度下查找,最后去blog查找。获取ip地址与服务器交互,通过TCP连接的三次握手实现,第一次握手浏览器发起告诉服务器将要发送请求,第二次握手服务器发起告诉浏览器准备接收,第三次握手由浏览器发送告诉服务器接收。第三步建立连接后发送请求HTTP请求报文,第四部接收服务器响应报文,第五部浏览器根据响应报文渲染页面调用HTML解析器解析成Token标记并构建成dom树,遇见css/style构建cssom树,遇见script标签,处理script代码,将dom树和cssom树合并成一个渲染树,根据渲染树计算布局,最后渲染布局。第六步TCP四次挥手,第一次浏览器发送给服务器请求报文发送完毕准备关闭,第二次服务器发起告诉浏览器东西(请求报文)接收完毕准备关闭,第三次服务器发起告诉浏览器东西(响应报文)发送完毕准备关闭,第四次浏览器发起东西(响应报文)接收完毕准备关闭)&减少TCP连接&)

闭包

(将配置文件存放于src路径(set,map es6提出的,变量对象,Global全局变量对象相当于window,local函数内局部变量对象,执行完毕作用域销毁释放内存里面闭包也会被销毁。内部函数返回到外部,延长生命周期,fun2()还能拿到变量。只传递一个实参,第一次是undefined,a.fun(1)对象调用fun是调用内部的fun不是外部的fun,传值给m每次console.log(n)调用的n衡为0。fun(0).fun(1)前面整体是一个对象,不是一个对象,存的闭包也不是同一个闭包)&闭包&将局部变量的作用域最小化&匿名函数&何为生命周期& 内存溢出与内存泄漏&函数的实参和形参& 作用域&匿名函数和闭包

变量提升&执行上下文

(变量提升&什么是搜索引擎&表达式预处理&使用上下文初始化参数(作用域是在代码定义时产生,执行上下文是代码正式执行之前会进入执行环境,全局变量对象window,局部变量对象)&作用域和闭包&this和对象原型(this指向对象,构造函数要new出实例对象)&延长作用域链(作用域链式函数某一个执行环境加上外层嵌套的作用域,外层作用域有关联就会形成作用域链,变量在当前作用域找没有找到会沿着作用域链沿着外层作用域找,直到找到全局,指向上下文EC可以看做是一个大的对象,包含了scopeChain和变量对象(变量对象和函数形参))&单线程&为什么要异步&使用回调&事件机制&虚拟DOM钩子函数&setInterval&原生代码实现Promise机制&process.nextTick()&宏观关联&微优化&3 Promise.prototype.then()&可用的LocaleResolver  )

宏任务与微任务

(向线程池提交任务(JS是单线程的,js代码都是在主线程上执行,有同步执行与异步执行之分,异步执行有回调函数,定时器,ajax和点击事件,回调执行时机取决于将回调函数放在eq事件队列里的先后顺序,JS引擎会以轮询eq是否有可执行的回调,如果有会将回调勾出去到主线程执行。requestAnimationFrame告诉浏览器将要在下一次动画之前调用回调函数,都是异步任务又属于宏任务,微任务放到微任务事件队列里的任务,JS主线程代码要执行是相当于启动了第一个宏任务。Resolve()肯定会执行第一个then回调,Promise属于同步任务new的同时执行里面的for循环相当于主线程任务)&)

小程序快速入门

(小程序实战(小程序是很轻量级的程序,无需下载,不能大于2M,大于2M要分包,小程序变动比较快。微信web开发者工具,project.config.json对整个项目的描述一般不会进行修改,wxss样式文件,app.js行为文件整个应用的逻辑,app.json是配置文件,wex.wxml相当于html。App.js onLaunch整个应用生命周期,点击跳转页面对应logs,主页面index。小程序是组件化开发,有自己完善的组件,小程序结构名与样式名必须一致才能找的到。App是注册这个应用,Page注册当前页面,初始化项目。小程序通过bindtap或者catchtap定义事件,小程序做到了完美适配不需要做不同机型的适配,VPX)&)

小程序和mpVue对比

(Vue.js 权威指南(mpVue是小程序的Vue框架,支持npm install下载包,会以vue组件开发的方式开发小程序,可以使用vue-router路由组件)&)

比较React和Vue

(Vue与React(都是组件化开发,提高编码风格,虚拟Dom,提高程序运行效率。数据驱动只要更新状态数据对应界面自动发生变化,不用直接操作Dom,react只支持内存数据到界面变化,不支持界面到到内存数据变化。React必须通过setState统一入口更新状态,vue只要通过this.xxx更新data值里面某个值,状态数据就会发生变化。)&)

Redux管理状态的机制

(Redux的基本原则(并不是react插件库,redux有store模块管理state状态是组件与状态之间桥梁,reducers根据老状态生成新状态,生成action对象模块action Creator。getState读状态,立马调用reducers获取初始状态,利用action creator产生action对象)&)

Vue组件间的通信方式

(组件通信(props兄组件必须借助父组件才能通信。在父组件里写子组件标签时绑定自定义事件监听指定回调函数,子组件触发分发事件,数据data就会从子组件传递给父组件。Subscribe订阅消息指定消息名和回调函数,发布消息时指定消息名以及传递的数据data,传递给回调函数。Slot通信的是标签,)&)

Vuex管理状态机制

(状态管理与Vuex(state,getters计算数据,读取状态数据或者通过映射函数map读取数据,更新状态数据通过actions,mutations更新,actions可以通过ajax请求与后台通信backend API双向,开发工具会监视mutations的调用记录状态的变化)&)

Vue的MVVM实现原理

(MVVM族员——Vue.js(初始化实现初始化显示为更新做了准备(实现数据劫持创建对应的watcher和dep),通过模板动态显示数据,数据绑定来实现更新数据界面会自动变化。New MVVM()实现数据代理、模板解析和数据绑定,observer先创建为了能监视/劫持data中所有层次的属性,同时为每一个属性创建了dep对象。创建watcher对象,并把watcher放到dep中,deps中有subs订阅者列表,后面通过watcher订阅者来更新。点击更新按钮会通过observer对应的set获取,调用某个属性对应的dep,通过watcher来调用回调函数更新界面) &

)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端学科面试题大全 的相关文章

随机推荐

  • 基于深度学习的人脸识别算法

    基于深度学习的人脸识别算法 简介 Contrastive Loss Triplet Loss Center Loss A Softmax Loss 参考文献 简介 我们经常能从电影中看到各种神奇的人脸识别技术 例如图1 人脸识别技术是基于面
  • 前端面试的性能优化部分(3)每天10个小知识点

    目录 系列文章目录 前端面试的性能优化部分 1 每天10个小知识点 前端面试的性能优化部分 2 每天10个小知识点 前端面试的性能优化部分 3 每天10个小知识点 前端面试的性能优化部分 4 每天10个小知识点 前端面试的性能优化部分 5
  • java复制文件后保持文件的创建时间不变

    复制后保持文件的创建时间不变 File oldFile new File E test old png File newFile new File E test new png FileCopyUtils copy oldFile newF
  • 【JAVA

    package learn import javax swing public class SimpleTable JFrame jf new JFrame 简单表格 String titles 姓名 性别 职业 String data 李
  • C语言数据变量

    1 变量的创建 上篇文章我们了解清楚了数据的类型 我们使 类型做什么呢 在C语言中 变量的创建包括变量的声明和变量的定义 变量的声明是指在程序中说明变量的存在 告诉编译器变量的类型和名称 变量的声明通常放在函数的头部或全局变量的前面 例如
  • 算法,16瓶水,有一瓶有毒,假设一只小白鼠喝一滴水,一个小时后会死亡,一个小时找出那瓶有毒的水至少需要几只小白鼠?

    首先16瓶水 编号0000 0001 1110 1111 然后让第一只小白鼠喝最低位为1的水 第二只小白鼠喝次最低位为1的水 第三只小白鼠喝第三位为1的水 第四只小白鼠喝最高位为1的水 一个小时后看小白鼠的存活状态 若小白鼠全活则0000
  • 找出通过车辆最多颜色(90%用例)

    在一个狭小的路口 每秒只能通过一辆车 假如车辆的颜色只有3种 找出N秒内经过的最多颜色的车辆数量 三种颜色编号为0 1 2 输入描述 第一行输入的是通过的车辆颜色信息 0 1 1 2 代表4秒钟通过的车辆颜色分别是0 1 1 2 第二行输入
  • COCOS2DX学习之Box2D物理引擎-------物体和相互作用

    1 创建一个静态物体 创建一个静态物体应该很简单 在头文件生命一下要创建新物体的函数 然后在cpp文件中实现它即可 具体的时候先过程 首先要用createbody函数创建一个物体 然后定义一个b2bodydef变量 指定一下这个变量的typ
  • 游戏开发unity编辑器扩展知识系列:修改纹理资源的TextureType

    需要用TextureImporter导入资源 调用如下代码 TextureImporter importer TextureImporter TextureImporter GetAtPath path importer textureTy
  • ADC 读取电位器旋钮,用回差消除临界值档位跳动

    就是比如 用电位器当旋钮做风扇调速 划分出10 个速度档位 对应10 个ADC 转换结果的阈值 如果直接比较阈值 当旋钮拧到临近阈值的地方时 ADC 结果的微小跳动会导致风扇档位在两个级别之间不停左右横跳 因此想到了利用回差来消除抖动 回差
  • Pycharm官网下载安装

    下载链接 pycharm官网 https www jetbrains com pycharm 然后来到这个界面 点击Download 下载按钮 然后点击开源版本 Community 下载安装就好了 接下来就创建项目 点击Create 这样就
  • FISCO BCOS 2.0新特性解读

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓
  • Nacos、ZooKeeper和Dubbo的区别

    Nacos ZooKeeper和Dubbo是三个不同的分布式系统组件 它们之间有以下几点区别 功能定位 Nacos主要提供服务发现 配置管理和服务治理等功能 而ZooKeeper主要是分布式协调服务 提供了分布式锁 分布式队列等原语 Dub
  • 本地部署LLaMA-中文LoRA部署详细说明

    在Ubuntu18 04 部署中文LLaMA模型 环境准备 硬件环境 AMD 5950X 128GB RAM RTX 3090 24G VRAM 操作系统 Ubuntu 18 04 编译环境 可选 llama cpp 编译 cd llama
  • GoJS学习

    简介 GoJS是一个可视化JavaScript库 用于浏览器中创建交互图形 比如流程图 树图 关系图 力导图等等 GoJS不依赖于任何JS库或框架 例如bootstrap jquery等 可与任何HTML或JS框架配合工作 甚至可以不用框架
  • Cuda 代码中的 函数前缀 device global host 使用

    众所周知 CUDA并行可以使代码加速很多倍 其文件类型为 cu 结尾 在编写cu 文件时 常用的函数前缀关键字有 device global host host C或者C 中相同 是由CPU调用 由CPU执行的函数 global 表示一个内
  • 为啥国内互联网公司都用centos而不是ubuntu?

    一直以来都很好奇ubuntu和centos有啥区别 上学时接触的都是ubuntu 自己每次装virtual box的时候都会下个ubuntu 但是公司的服务器上装的都是centos 今天查了下知乎网友的精彩回答 呵呵 简单总结下主要有几个原
  • 解释执行与编译执行语言有什么区别?

    一 主体不同 1 编译执行 由编译程序将目标代码一次性编译成目标程序 再由机器运行目标程序 2 解释执行 将源语言直接作为源程序输入 解释执行 解释一句后就提交计算机执行一句 并不形成目标程序 二 优势不同 1 编译执行 相比解释执行编译执
  • 常用的偏微分方程

    偏微分方程通常包含两个以上的自变量 若自变量同时间相关 或者无关 称其为发展型 或者稳态 的 下面 我们罗列出一些典型的偏微分方程 如 热传导方程 一阶双曲守恒律方程 二阶波动方程 椭圆型偏微分方程等 抛物型偏微分方程通常刻画 个物理系统的
  • 前端学科面试题大全

    作用域和值类型引用类型的传递 变量作用域 作用域变量访问区域 变量值存在栈中 变量赋值相当于值赋值 值传递与引用传递有哪些区别 函数内部 变量会先声明 形式参数变量声明提升 整个函数体有var声明的变量 如果没有访问全局定义的num2 函数