前端面试基础面试题——1

fcd8bca838f641fdadae11a6bb57cfde.gif

 总结了一些基础的面试题 如果大家有兴趣的话可以关注留意一下 今后会不断更新一些面试题 

1.JavaScript  中的 AJAX  原理及应用。

2.什么是闭包?请简单描述一下闭包的特点与应用场景。

3.请简述 HTTPS  与 HTTP  的区别,如何保证 HTTPS   的安全性?

4.请简述对 MVVM   框架的理解

5.如何解决浏览器兼容性问题?

6. JavaScript  中的原型、原型链及其作用。

 7.Vue.js 中的双向数据绑定原理及其优势。 

8.JavaScript 中的深浅拷贝及其实现方法

9.JavaScript  中的递归及其应用。

10. JavaScript  中的 Promise  (承诺)及其作用。

1.JavaScript  中的 AJAX  原理及应用。

  JavaScript 中的 AJAX(Asynchronous  JavaScript  and  XML) 是一种用于创建异步请求和处理服务响应的技术,将数据发送到服务器和从服务器接收数据都是异步进行的,不会干扰页面的正常操作。AJAX 的原理基于 XMLHttpRequest   对象,可以使用原生 JavaScript 或者 jQuery 等库进行开发,在前端 Web  开发中应用广泛,可以用于实现动态网页、数据交互等功能。

2.什么是闭包?请简单描述下闭包的特点与应用场景。

闭包是指嵌套在函数内部的函数,它可以访问其它函数作用域中的变量,即使这些变量在函数调用结束后仍然存在。

        闭包的特点:

                1.可以访问函数外部的变量

                2.内部函数持有外部函数作用域

                3.可以访问外部函数的参数和局部变量

                4.外部函数返回后,内部函数仍然会持有外部函数作用域

        闭包的应用场景:

                1.封装类库,隐藏内部实现细节

                2.延迟执行,如事件绑定和回调函数

                3.模拟块级作用域,如在循环中创建定时器

                4.作为立即执行函数 (IIFE)使用,防止变量污染全局命名空间

3.请简述 HTTPS   HTTP  的区别,如何保证 HTTPS   的安全性?

HTTPS(HyperText  Transfer  Protocol  Secure) 是 HTTP  协议的加强版,通过 SSL/TLS  协议对数据进行加密传输,保证通信安全可靠。

        区别如下:

                1.HTTP   通信使用明文传输,安全性较低;HTTPS  使用 SSL/TLS  对数据进行加密传输,安全性高。

                2.HTTP   默认使用80端口, HTTPS   默认使用443端口。

                3.HTTPS   需要使用数字证书,由CA 机构颁发,保证通信双方身份合法性。

        保证 HTTPS  安全性的措施:

                1.TLS 握手过程中使用非对称加密算法 (RSA、DSA、ECC 等)协商对称加密算法和密钥。

                2.证书链验证确保通信双方的身份合法性。

                3.使用快速加密算法,如 AES(Advanced   Encryption   Standard) 等。

                4.cookie 安全性管理,如禁止通过 http 传输,使用 Secure、HttpOnly  属性等。

                5. 开启 HTTP  Strict  Transport  Security(HSTS), 防止中间人攻击,使用 Content Security Policy(CSP)  防止 XSS 和 CSRF  攻击。

4.请简述对 MVVM   框架的理解

  MVVM是Model-View-ViewModel的缩写,一种前端框架的思想。在 MVWM架构中,View 和

ViewModel是相互独立的,二者使用数据绑定技术实现数据双向绑定。

        MVVM框架的优点:

                1.双向数据绑定和自动更新视图,减少大量手动操作 DOM的代码。

                2.代码组织清晰,模块化开发,View 和ViewModel分离,方便代码维护和协作开发。

                3.官方和第三方库丰富,提供了大量现成的组件和功能。

        MVVM框架的缺点:

                1.数据绑定会消耗一定的内存和性能,尤其是对于大规模数据更新时,性能消耗更为明显。

                2.需要学习一些新的语法和使用规则。

                3.组件的可定制性较低,需要在框架提供的范围内进行定制。 

5.如何解决浏览器兼容性问题?

可以使用CSS Hack、JavaScript Polyfill、IE6-8特有的CSS 属性等方法来解决浏览器的兼容性问题。也可以使用CSS 规范、 JavaScript细节的书写来避免出现兼容性问题。

6. JavaScript  中的原型、原型链及其作用。

   JavaScript 中的原型 (prototype) 指的是一个对象的共享属性和方法;原型链是由原型对象和其属性所 组成的链状结构。 JavaScript 是一种基于原型的语言,利用原型和原型链机制可以实现对象的继承和共享属性和方法的复用。

 7.Vue.js 中的双向数据绑定原理及其优势。 

 Vue.js 中的双向数据绑定是指当数据模型发生变化时,视图会自动更新,同时当用户在视图中操作时,数据模型也会自动更新。双向数据绑定的原理是利用 Object.defineProperty 函数监控数据变化,并在变化时更新相关视图。双向数据绑定的优势包括减少代码量、提高开发效率和可维护性。

8.JavaScript 中的深浅拷贝及其实现方法

 JavaScript 中的深浅拷贝是指复制对象或数组时是否复制其值或者只是复制其引用。

        浅拷贝只复制了一 个对象或数组的引用,而深拷贝则是创建一个完全独立的对象或数组,是基于值复制而不是基于引用复制。

        实现方法包括使用 ES6 的扩展运算符、使用 JSON  序列化和反序列化等。

9.JavaScript  中的递归及其应用。

 JavaScript 中的递归是一种在函数之内调用自身的行为,可以用于处理具有递归结构的数据或操作。递 归的应用包括处理复杂的数学计算、解决复杂的问题(如数据搜索、遍历、排序等)和处理复杂的数据结构等。递归需要注意的问题包括栈溢出、递归停止条件、递归深度等

10. JavaScript  中的 Promise  (承诺)及其作用。

 CSS  Flexbox 布局(又称 Flex 布局)是一种用于实现灵活和响应式布局的 CSS3  特性,可以实现各复杂的布局,并且适用于所有的终端设备和屏幕尺寸。 

        Flexbox 可以通过定义容器和子元素的属性来实现元素之间的布局关系。 Flexbox 引入了以下几个概念:

        ● Flex 容器:包裹 Flex  元素的父元素,用于定义 Flex  元素的布局。

        ● Flex 元素: Flex  容器的子元素,用于定义 Flex  元素的大小、位置等属性。

        ● 主 轴 (Main  Axis): 定义 Flex  容器的主要方向。

        ● 交 叉 轴 (Cross  Axis):  与主轴垂直的轴,用于实现元素在主轴上的对齐。

        使用 Flex 布局可以通过设置 display: flex 来定义 Flex 容器,从而实现元素之间的灵活布局和响应式设计。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年6月GESP C++ 四级试卷解析

一、单选题(每题2分,共30分) 1.高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A.编辑 B.保存 C.调试 D.编译 【答案】D 【考纲知识点】编程环境(一级) 【解析】本题…

考研408 | 【操作系统】 文件管理

初识文件管理 文件属性: 文件内部的数据应该怎样组织起来? 操作系统应该向上提供哪些功能? 从上往下看,文件应该如何存放在外存? 其他需要由操作系统实现的文件管理功能 总结: 文件的逻辑结构 无结构文…

【IMX6ULL驱动开发学习】11.Linux之SPI驱动

参考:驱动程序开发:SPI设备驱动_spi驱动_邓家文007的博客-CSDN博客 目录 一、SPI驱动简介 1.1 SPI架构概述 1.2 SPI适配器(控制器)数据结构 1.2 SPI设备数据结构 1.3 SIP设备驱动 1.4 接口函数 二、SPI驱动模板 一、SPI驱动…

34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS

知识点1:springboot切换内嵌Web服务器(Tomcat服务器) 知识点2:生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS ★ Spring Boot默认的Web服务器(Tomcat) ▲ 基于Servlet的应用(使用Spring MV…

开源软件的崛起:历史与未来

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇…

【C#学习笔记】数据类中常用委托及接口——以List<T>为例

文章目录 List\<T\>/LinkedList \<T\>为什么是神&#xff1f;&#xff08;泛型为什么是神&#xff09;一些常见&#xff0c;通用的委托和接口ComparisonEnumerator List<T>/LinkedList <T>为什么是神&#xff1f;&#xff08;泛型为什么是神&#xff0…

人力资源小程序的设计方案与实现

随着互联网的发展&#xff0c;人才招聘已经成为许多企业的一项重要任务。为了提高招聘效率和便利求职者&#xff0c;许多企业开始采用小程序作为招聘平台。本文将为大家介绍一个搭建本地人才招聘网小程序的实用指南。 首先&#xff0c;我们需要登录【乔拓云】制作平台&#xff…

RabbitMQ 消费者

RabbitMQ的消费模式分两种&#xff1a;推模式和拉模式&#xff0c;推模式采用Basic.Consume进行消费&#xff0c;拉模式则是调用Basic.Get进行消费。   消费者通过订阅队列从RabbitMQ中获取消息进行消费&#xff0c;为避免消息丢失可采用消费确认机制 消费者 拉模式拉模式的实…

用Kubernetes(k8s)的ingress部署https应用

用Kubernetes的ingress部署https应用 环境准备Ingress安装域名证书准备 部署应用通过ingress暴露应用根据ssl证书生成对应的secret创建ingress暴露部署的应用确认自己安装了ingress创建ingress 访问你暴露的应用 环境准备 Ingress安装 我之前有一片文章写的是用ingress暴露应…

在 Python 中构建卷积神经网络; 从 0 到 9 的手绘数字的灰度图像预测数字

一、说明 为了预测从0到9的数字&#xff0c;我选择了一个基于著名的Kaggle的MNIST数据集的数据集。数据集包含从 <0> 到 <9> 的手绘图数字的灰度图像。在本文中&#xff0c;我将根据像素数据&#xff08;即数值数据&#xff09;和卷积神经网络预测数字。 二、 卷积…

基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码

智慧工地聚焦施工现场岗位一线&#xff0c;围绕“人、机、料、法、环”五大要素&#xff0c;数字化工地平台与现场多个子系统的互联实现了工地业务间的互联互通和协同共享。数字化工地管理平台能够盘活工地各大项目之间孤立的信息系统&#xff0c;实现数据的统一接入、处理与维…

❤ windows 安装后台java开发环境JDK 、MySQL 、Redis

❤ windows 安装后台java开发环境 1、windows 安装 JDK. 下载地址&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1、下载安装 官网点击下载安装 网盘 jdk安装包 链接&#xff1a;https://pan.baidu.com/s/1sdxA6B…

李宏毅 2022机器学习 HW2 上分路线

strong baseline上分路线 baseline增加concat_nframes &#xff08;提升明显&#xff09;增加batchnormalization 和 dropout增加hidden layer宽度至512 &#xff08;提升明显&#xff09; 提交文件命名规则为 prediction_{concat_nframes}[{n_hidden_layers}{dropout}_bn].c…

如何DIY制作干洗店洗护小程序

洗护行业正逐渐迎来线上化的浪潮&#xff0c;传统的干洗店也开始尝试将业务线上化&#xff0c;以提供更便捷的服务给消费者。而制作一款洗护小程序&#xff0c;成为了干洗店实现线上化的重要一环。今天&#xff0c;我们就来分享一下如何使用第三方制作平台制作洗护小程序的教程…

禅道后台命令执行漏洞 (二)

漏洞简介 禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体&#xff0c;是一款专业的研发项目管理软件&#xff0c;完整地覆盖了项目管理的核心流程。禅道管理思想注重实效&#xff0c;功能完备丰富&#xff0c;操…

纯 CSS 开关切换按钮

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>纯 CSS 开关切换按钮</title><style>html {font-size: 62.5%;}body {background-color: #1848a0;}.wrapper {position: absolute;left: …

激光三角测距原理

激光三角测距原理 1. 简介2. 直射式激光三角测距法3. 斜射式激光三角测距法 1. 简介 激光三角测量法是利用光线空间传播过程中的光学反射规律和相似三角形原理&#xff0c;在接收透镜的物空间与像空间构成相似三角形关系&#xff0c;同时利用边角关系计算出待测位移。根据入射…

『赠书活动 | 第十八期』《深入浅出SSD:固态存储核心技术、原理与实战》

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 『赠书活动 &#xff5c; 第十八期』 本期书籍&#xff1a;《深入浅出SSD&#xff1a;固态存储核心技术、原理与实战》 赠书规则&#xff1a;评论区&#xff1a;点赞&…

Android中的APK打包与安全

aapt2命令行实现apk打包 apk文件结构 classes.dex&#xff1a;Dex&#xff0c;即Android Dalvik执行文件 AndroidManifest.xml&#xff1a;工程中AndroidManifest.xml编译后得到的二进制xml文件 META-INF&#xff1a;主要保存各个资源文件的SHA1 hash值&#xff0c;用于校验…

神经网络的工作原理

目录 神经网络的介绍 神经网络的组成 神经网络的工作原理 Numpy 实现神经元 Numpy 实现前向传播 Numpy 实现一个可学习的神经网络 神经网络的介绍 神经网络受人类大脑启发的算法。简单来说&#xff0c;当你睁开眼睛时&#xff0c;你看到的物体叫做数据&#xff0c;再由你…