前端面试1-15

说一说JS变量提升?

函数和var声明的变量会有变量提升,js在预编译阶段会将函数和var声明的变量提升至最前面先执行,之后再按顺序执行代码块进行赋值,而let和const声明的变量只是创建提升,在预编译中将其创建,形成暂时性死区,不能提前访问和调用变量,只能在赋值之后进行调用和访问

说一说this指向(普通函数、箭头函数)?

this当在普通函数调用时,如果处于非严格模式之中将会是指向window、如果是严格模式将会是指向undefined。 在对象之中调用,将会是指向当前的对象。通过new创建出来的对象将会是指向当前的新对象 如果是使用call、bind、apply修改了指向,将会指向绑定后的this 在箭头函数之中将会指向函数的外层执行上下文,当函数定义之后将会确定当前的this。继承了上一层执行环境的this

说一说call apply bind的作用和区别?

三者功能一致,改变函数体内的this指向
call、apply可以立即执行,bind不会立即执行,会返回一个函数 需要加入括号才会调用
apply的第二个参数是数组,call和bind有多个参数需要挨个写
说一说js继承的方法和优缺点?

1、原型链继承-缺点:父类的引用类型数据被所有子类共享,更改一个子类的数据,其他数据会受到影响,一起改变;子类实例不能向父类构造函数传参。2、借用构造函数的继承-优点:父类的引用类型数据不会被子类共享。缺点:子类不能访问父类原型属性的上的方法和参数。3、组合继承-优点:父类可以复用,父类构造函数中的引用类型数据不会被共享。缺点:会调用两次父类的构造函数,会有两份一样的属性和方***影响性能。4、寄生组合继承(目前推荐的最优的方法之一)-优点:解决组合继承调用两次父类构造函数的缺点。5、class继承extends,也是目前推荐的最优方法之一。

说一说new会发生什么?

看下new的实现代码就知道有以下四步:1. 创建一个新对象 2. 将新对象的__proto__(原型)指向构造函数的prototype(原型对象)3. 构造函数绑定新对象的this并执行返回结果 4. 判断返回结果是否为null,如果为null,返回新对象,否则直接返回执行结果。

说一说defer和async区别?

html文件都是按顺序执行的,script标签中没有加defer和async时,浏览器在解析文档时遇到script标签就会停止解析阻塞文档解析,先加载JS文件,加载完之后立即执行,执行完毕后才能继续解析文档。 而在script标签中写入defer或者async时,就会使JS文件异步加载,即html执行到script标签时,JS加载和文档解析同时进行,而async是在JS加载完成后立即执行JS脚本,阻塞文档解析,而defer则是JS加载完成后,在文档解析完成后执行JS脚本

说一说promise是什么与使用方法?

说一说JS实现异步的方法?

回调函数、事件监听、setTimeout(定时器)、Promise、async/await,generator生成器

说一说cookie sessionStorage localStorage 区别?

共同点:都是存储在浏览器本地; 不同: 1.cookie 服务器端写入; S,L 由前端写入; 生命周期 2.cookie由服务器端在写入的时候就设置好的;L写入就一直存在,除非手动清除;S 页面关闭就自动清除; 存储大小 3.cookie最小,4kb; S,L大约5M; 数据共享 4.数据共享都遵循同源原则,S还限制必须是同一个页面;前端向后端发送请求的时候会自动携带Cookie中的数据; 应用场景 5.Cookie一般用于存储登录验证信息SessionID或者token; L存储不易变动的数据,减轻服务器的压力;S可以用来检测用户是否是刷新进入 页面

说一说如何实现可过期的localstorage数据?

一种是惰性删除:惰性删除是指获取数据的时候,拿到存储的时间和当前时间做对比,如果超过过期时间就清除Cookie。 另一种是定时删除:每隔一段时间执行一次删除操作,并通过限制删除操作执行的次数和频率,来减少删除操作对CPU的长期占用。 LocalStorage清空应用场景:token存储在LocalStorage中,要清空

说一下token 能放在cookie中吗?

1.实现上是可以的,功能上不推荐,容易产生csrf问题
2.token一般存储在sessionStorage/localStorage里面。token的出现就是为了解决用户登录后的鉴权问题,如果采用cookie+session的鉴权方式,则无法有效地防止CSRF攻击,同时,如果服务端采用负载均衡策略进行分布式架构,session也会存在一致性问题,需要额外的开销维护session一致性。

说一说axios的拦截器原理及应用?

axios拦截器分为响应和请求拦截器,请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie、请求体加验证、设置请求头等,相当于是对每个接口里相同操作的一个封装; 响应拦截器 同理,响应拦截器也是如此功能,只是在请求得到响应之后,对响应体的一些处理,通常是数据统一处理等,也常来判断登录失效等。

说一说创建ajax过程?

(1)创建异步对象,即 XMLHttpRequest 对象。 (2)使用 open 方法设置请求参数。open(method, url, async)。参数解释:请求的方法、请求的 url、是否异步。第三个参数如果不写,则默认为 true。 (3)发送请求:send()。 (4)注册事件:注册 onreadystatechange 事件,状态改变时就会调用。如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。 (5)服务端响应,获取返回的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漏桶算法:稳定处理大量突发流量的秘密武器!

漏桶算法的介绍 我们经常会遇到这样一种情况:数据包的发送速率不稳定,而网络的带宽有限。如果在短时间内有大量的数据包涌入,那么网络就会出现拥塞,数据包的丢失率就会增大。为了解决这个问题,人们提出了一种叫做“漏…

lerna实战(一)

前言 将大型代码仓库分割成多个独立版本化的 软件包(package)对于代码共享来说非常有用。但是,如果某些更改 跨越了多个代码仓库的话将变得很 麻烦 并且难以跟踪,并且, 跨越多个代码仓库的测试将迅速变得非常复杂。 …

ai语音机器人智能电销机器人具体功能及工作流程

ai语音电销机器人智能,代替的主要是电话销售人员电话筛选客户的工作。因为电话销售人员每天90%的时间都是用在了拨打电话找客户上了。像这类简单、重复性的工作是完全可以由机器人取代的,我们一起来看看电销机器人的工作流程: 1、一键导入要…

Spring MVC 介绍及其使用(详细)

目录 一.什么是SpringMVC呢? 1.1MVC的介绍 1.2SpringMVC和MVC的关系 二.SpringMVC的学习 第一步:创建项目 第二步,SpringMVC的连接 第三步,Spring MVC获取参数 第四步 SpringMVC的输出 总结 特点和优势 核心组件 一.什…

发布一个属于自己的 npm工具包

我们可以发布一个属于自己的工具包到 npm 服务上,方便自己和其他开发者使用,参与社区贡献,操作步骤如下: 创建与发布 npm 初始化工具包,package.json 填写包的信息 (包的名字是唯一的)注册账号 https://www.npmjs.co…

Springboot打包jar如何后台启动和查看日志?

如何后台启动Spring Boot的fat jar 使用nohup命令启动: 在Linux或Unix系统中,你可以使用nohup命令来启动jar包,以确保即使你关闭了终端或断开了SSH连接,程序仍然可以在后台运行。命令格式如下:nohup java -jar yourapp…

利用matplotlib和KNeighborsClassifier,进行DBSACN聚类算法

代码: # -*- coding: utf-8 -*- """ Created on Sat May 11 10:23:50 2024author: admin """ # 调用库 import numpy as np import matplotlib.pyplot as plt # 调用人工智能模型库 from sklearn.neighbors import KNeighborsClassi…

2024届SLAMer秋招算法岗面试题总结

2024届SLAMer秋招算法岗面试题总结 1 实习面试篇禾多科技小米Nreal极智嘉 2 秋招面试篇商汤南测(线下)影石零束中移上研院(线下) 先说一下本人的情况,研究方向视觉slam多传感器融合,bg双985,一篇…

如何解决NodeJS内存不足引起的程序崩溃问题?

当你的内存量不足(比如云服务器上),可以给系统设置虚拟内存,然后用这个方法增加NodeJS可用内存量,以此解决内存不足而导致的程序崩溃问题。 具体的,就是使用--max-old-space-size参数来增加V8引擎的最大内…

前端最方便正则验证手机号

let reg /^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$/;if (!reg.test(this.phone)) {uni.showToast({icon: none,title: 请输入正确的11位手机号}) }

009.Rx(Reactive Extenstions)的关系

响应式扩展库在组成响应式系统的应用程序中发挥作用,它与消息驱动的概念相关。Rx不是在应用程序或服务器之间移动消息的机制,而是在消息到达时负责处理消息并将其沿着应用程序内部的执行链传递的机制。需要说明的是,即使您没有开发包含许多组…

【MySQL数据库】丨高可用之MHA集群部署

一、准备工作 1.1 修改主机名 vim /etc/hosts# 添加对应主机 192.168.28.128 mha1 192.168.28.131 mha2 192.168.28.132 mha31.2 关闭防火墙及修改selinux # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭自启动# 修改selinux vim /etc/sy…

nginx配置域名与IP访问服务冲突问题

在最近的一次开发中遇到一个问题,我在云服务器上部署了两个服务,A服务和B服务, A服务在服务器中用的端口是80端口,所以我在浏览器访问的地址就是 B服务在服务器中用的是9818端口,所以我在浏览器访问的是 现在我给B服务…

解决css使用@keyframes/animation属性失效的问题

导致该属性失效的原因可能有很多种,这里记录我遇到的一种: 因为在使用keyframes时用了 !important 导致属性失效,如: 以下代码阴影不生效: keyframes goshadow {0% {box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.12) …

RustGUI学习(iced)之小部件(九):如何使用绘图部件canvas在窗口画图?

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第九篇,主要讲述canvas绘图部件的使用,会结合实…

Apache访问控制与虚拟主机

目录 一. Web服务简介 以下是一些 Web 服务的基本概念和特征 以下是一些主流的 Web 服务器 WEB 服务协议 二. Apache 服务的搭建与配置 2.1 Apache 介绍 2.2 Apache安装 2.3 Apache目录介绍 三. 访问控制 四. 修改默认网站发布目录 五. 虚拟主机 5.1 基于域名的虚拟…

产品经理也要学个PMP证书?

随着互联网行业竞争的加剧,越来越多的互联网公司将产品经理视为重点培养对象。为了提升自身能力,许多产品经理选择考取项目管理专业认证PMP(Project Management Professional)。那么,PMP对产品经理来说是否真的有帮助呢…

GPU型号-CUDA toolkit版本-driver驱动版本-VStudio版本

根据GPU型号确定可使用的CUDA版本进而确定其他软件的版本对深度学习、高性能并行计算都有重要的参考价值。鉴于互联网资料在此方面的总结较少,根据自身经验简单介绍版本之间的对应关系。 首先用户可以确定的是自己的GPU型号。根据自己的GPU型号可以确定该GPU对应的…

flutter递归方法,获取混合数据结构中的所有值

方法&#xff1a; // 递归函数&#xff0c;用于获取混合数据结构中的所有值/*data: Map类型的数据(实体类 toJson)values&#xff1a;存放递归出来的参数*/getAllValues(dynamic data, List<dynamic> values) {if (data is List) {// 如果是数组&#xff0c;递归遍历数组…

腾讯开源混元大模型-Hunyuan-DiT

网址 https://github.com/Tencent/HunyuanDiT 老实说&#xff0c;最近的大模型层出不穷&#xff0c;我是越来越看不懂了。 现在有些工具用起来都费劲&#xff0c;技术更新换代太快了&#xff0c;每个大厂都在自研模型。 感觉要是想玩这些工具的话&#xff0c;国内的可玩性还…