前端面试高频题精讲(一)

news2024/12/23 0:17:47

HTML篇

  • 什么是语义化

用正确的标签做正确的事情。例如:段落用 p 标签,标题用 h 系列标签。

  • 便于团队的开发和维护,我见过用div走天下的,但不利于看清页面结构。
  • 在没有加载 CSS 的情况下也能呈现较好的内容结构与代码结构,易于阅读。
  • 方便其他设备的解析(如屏幕阅读器、盲人阅读器等)article,利于无障碍阅读,提高可访问性。
  • 有利于 SEO ,搜索引擎的爬虫依赖于标签来确定上下文和各个关键字的权重。
  • meta viewport 是做什么用的,怎么写? 

 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

  • name 为 viewport 表示供移动设备使用。
  • content 定义了 viewport 的属性。
  • width 表示移动设设备下显示的宽度为设备宽度(device-width)
  • height 表示移动设设备下显示的高度为设备高度。
  • user-scalable 表示用户缩放能力,no 表示不允许。
  • initial-scale 表示设备与视口的缩放比率。
  • maximum 和 minimum 分别表示缩放的最大最小值,要注意的是 maximum 必须比minimum 大。
  • 上面的 meta 标签就是告诉浏览器,不要在移动端显示的时候缩放。
  • H5新增标签(每个类说四五个即可)

加强了浏览器的功能,减少了插件的使用(Flash):

  • video 表示一段视频并提供播放的用户界面
  • audio 表示音频
  • canvas 表示位图区域
  • 语义化标签 header、nav、footer 等
  • <progress value="0.5"></progress>进度栏标签 value值代表进度,0-1

添加了一些新的表单控件:

  • email:必须输入邮件;
  • url:必须输入url地址;
  • date:选取日、月、年
  • month:选取月、年
  • week:选取周和年

新的属性:

  • placeholder 提示信息
  • required  是否必须填写
  • hidden 隐藏 填写了hidden属性的标签会被隐藏
  • maxlength 最大长度
  • minlength 最小长度 

CSS篇

  • 两种盒模型 box-sizing:content-box / border-box

  • W3C 盒子模型(标准盒模型):width = 本身宽度
  • 怪异和模型:包含 width = content-width + padding-width + border-width
  • 垂直居中的几种方式

  • display:flex
  • position:absolute;margin:auto;
  • transform: translateY/X(-50%); ;
  • margin-top:-50%;
  • <table> 标签自带居中
  • 父元素设置:display:table,子元素设置:display:table-cell
  • flex常用属性有哪些?(大概回答上图片这些即可)

  • 什么是BFC

BFC 全称 "Block Formatting Context", 中文为"块级格式化上下文"。BFC 元素特性表现原则就是,内部子元素再怎么翻江倒海,翻云覆雨都不会影响外部的元素。

  • CSS选择器优先级 

!important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符

  • 清除浮动 

  • 给父元素加 overflow :hidden 
  • 给父元素外部嵌套一个标签
  • 使用伪类清除浮动
.clearfix::after{
    content:'';
    display:block / table;
    clear:both;
}

JS篇

  • 什么是严格模式

严格模式是采用具有限制性 JavaScript 变体的一种方式,具备规范性。

  • 使用 use strict 来声明且必须书写在首行
  • 全局变量必须先声明
  • 禁止使用 with
  • 创建 eval 作用域
  • 禁止 this 指向 window
  • 函数参数名唯一
  • 禁止使用八进制方法
  • 将一切不规范的地方全部抛出错误
  • ES6新特性 (至少说出十个以上)

  • 变量声明扩展:let、const
  • 基本数据类型扩展:symbol
  • 字符串方法新增:startswith(是否开头,返回布尔值)、endswith(是否结尾,返回布尔值)、repeat(是否平铺及平铺次数)等
  • 数组方法新增:Array.of(将不同类型值传入返回一个新数组)、Array.from(将伪数组 变为数组)、find(查询符合条件的元素)、filter(过滤)等
  • 函数新增:箭头函数、默认参数
  • 解决异步问题:promise、async await
  • class 类等
  • 解构赋值、扩展运算符(...)
  • promise 的实现及静态方法 all 、race等高级用法

用于解决异步问题。先 new Promise ,内部传入一个回调函数,函数传入 resolve 和 reject 两个参数

  • promise.race:常用于秒杀场景。
  • promise.all:按顺序打印结果。
  • 防抖和节流(要结合项目说说在哪些地方使用到)

防抖:在n秒内点击触发,n秒内再次点击,n秒会重新计数,但只执行最后一次。

  • 常用在表单提交(用户注册,验证)

节流:在n秒内点击触发,n秒内再点击,n秒不会重新计数,只执行第一次。

  • 常用在鼠标拖拽、键盘的使用
  •  手写Ajax

var xhr = new XMLHttpRequest()
xhr.open('GET','路径名')
xhr.send()
xhr.onreadystatechange=function(){
    if(xhr.readyState === 4 && xhr.status === 200){
        console.log(xhr.responseText)
    }
}
  • JSONP 

是一个非官方对的协议,核心是一个 get 请求,服务器请求数据后再用回调函数返回

  • 原理就是利用 script 标签不收跨域影响
  • async await是什么如何捕获异常

使用 try catch

  • 深拷贝浅拷贝

使用JSON.parse(JSON.stringfy())深拷贝时,复杂数据类型会造成错误丢失

  • 如何实现数组去重

  • IndexOf() 或 includes(),用一个空数组去push
  • 双重for循环,搭配splice
  • new Set():无法去重引用数据类型
  • filter() 搭配 indexOf()
  • 前端性能优化

  • 使用虚拟列表对长列表进行动态优化
  • 减少DOM操作
  • 使用精灵图
  • 减少http的请求次数
  • 对资源和数据进行缓存
  • 合理使用路由懒加载
  • UI组件按需导入等
  • 栈和堆的区别

  • 栈:由编译器自动分配释放的,通常存放基础数据类型
  • 堆:一般由程序员分配释放,若程序员不释放,程序结束时有操作系统释放,通常存放引用数据类型。
  • 什么是 window 对象和 document 对象(可以说一些他们的方法)

  • window 对象代表浏览器中打开一个窗口
  • document 对象代表整个文档,实际上,document 是 window 对象上的一个属性。
  • 什么是渐进式升级和优雅降级(需要举例说明)

  • 渐进式升级:主要针对低版本浏览器进行构建,保证页面最基本的功能,同时针对高版本浏览器进行改进,提高用户的用户体验
  • 优雅降级:开始就构建好完整的功能,在针对低版本浏览器进行兼容
  • 例如:阿里在对天猫的技术选型的时候,使用的是 React ,因为它兼容 IE8 而 Vue 不兼容 IE8。
  • 什么是 DOM 和 BOM

  • DOM 指的是文档对象模型,它指的是把文档当做一个对象来对待,主要定义了处理网页内容的方法和接口。
  • BOM 指的是浏览器对象模型,它指的是把浏览器当做一个对象来对待,主要定义了与浏览器进行交互的方法和接口。
  • BOM的核心是 window,而 window 对象具有双重角色,它既是通过 js 访问浏览器窗口的一个接口,又是一个 Global(全局)对象。这意味着在网页中定义的任何对象,变量和函数,都作为全局对象的一个属性或者方法存在。
  • window 对象含有 location 对象、navigator 对象、screen 对象等子对象,并且 DOM 的最根本的对象 document 对象也是 BOM 的 window 对象的子对象。

  • 什么是幽灵空白节点

  • 内联元素在解析渲染后表现为不占任何宽度的空白节点
  • 常见的内联元素:a、i、input、img、br、span、textarea
  • 函数柯里化

  • 接收一个多参的函数,当参数个数到了就返回函数,参数到了就返回值的技术
  • 主要作用就是实现参数复用、提前返回和延迟执行
  • this指向的几种情况

  • 全局的 this 指向 全局
  • 函数内部的 this 指向该函数
  • 有 new 关键词,this 指向 new 出来的对象
  • 使用  bind、call、apply 的函数则指向指定的对象
  • 箭头函数的 this 指向上下文

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

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

相关文章

Ubuntu18.04/20.04/22.04的Apollo8.0软件包安装(免编译)

本文主要介绍在如何使用软件包&#xff08;即 deb 包&#xff09;的方式来安装 Apollo&#xff0c;相对于源码方式安装&#xff0c;软件包安装方式不需要编译&#xff0c;更加快捷。但是对环境的支持比较单一&#xff0c;如果在自定义环境内安装&#xff0c;请移步源码安装方式…

camunda流程引擎connector如何使用

在 Camunda 中&#xff0c;Connector 是一种用于与外部系统或服务交互的机制。它允许 BPMN 模型中的 Service Task 节点与外部系统或服务进行通信&#xff0c;从而使流程更加灵活和可扩展。使用 Connector&#xff0c;可以将业务流程与外部系统集成在一起&#xff0c;而无需编写…

java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

一个好的SpringCloudSpringBoot b2b2c 电子商务平台涉及哪些技术、运营方案&#xff1f;以下是我结合公司的产品做的总结&#xff0c;希望可以帮助到大家&#xff01; 搜索体验小程序&#xff1a;海哇 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家…

Python学习27:存款买房(A)

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 你刚刚大学毕业&#xff0c;…

亚马逊如何提高商品listing转化率?测评自养号优势和技巧有哪些?

之前有讲过&#xff0c;亚马逊店铺流量的几大入口&#xff0c;如何获取流量。那么获取了流量之后&#xff0c;亚马逊卖家就需要考虑到转化率的问题&#xff0c;如果流量来没有转化率&#xff0c;一样不会产生订单。如果转化率太低还会影响到商品的表现&#xff0c;比如排名会下…

亚马逊云科技基础设施为大型模型推理提供技术保障

在2019年的亚马逊云科技re:Invent上&#xff0c;亚马逊云科技发布了新的基础设施Inferentia芯片和Inf1实例。Inferentia是一种高性能机器学习推理芯片&#xff0c;由亚马逊云科技定制设计&#xff0c;其目的是提供具有成本效益的大规模低延迟预测。时隔四年&#xff0c;2023年4…

使用particles动态粒子效果,优化登录页

前言 书接上回&#xff0c;咱不是做了落日余晖登录页&#xff0c;说白了就是一个背景图&#xff0c;感觉需要进一步优化一下&#xff0c;做一个高大上的效果。所图所示&#xff0c;我想要背后的动态粒子效果&#xff0c;这就开搞&#xff0c;基于老的代码&#xff1a;vue2和el…

10种最常用的3D 分析工具【GIS】

3D 分析一直是 GIS 中的一个增长趋势&#xff0c;因为它可以更好地表示现实世界。 这不仅仅是为了一张漂亮的图片。 对于某些类型的问题&#xff0c;3D 分析有时是你解决问题的唯一方法。 推动这一需求的 3D 数据类型也呈爆炸式增长。 例如&#xff0c;激光雷达、BIM、无人机…

S7-200SMART 实现MODBUS TCP通信的具体方法示例(客户端读写+服务器响应)

S7-200SMART 实现MODBUS TCP通信的具体方法示例(客户端读写+服务器响应) 前面和大家介绍了MODBUS TCP的基本使用方法,具体可参考以下链接中的内容: S7-200SMART实现MODBUS TCP通信(客户端+服务器)的具体方法和步骤示例 本次继续和大家分享S7-200SMART 中实现MODBUS TCP通…

界面控件DevExtreme使用指南 - 如何为雷达图添加注释?

在之前的版本中&#xff0c;官方技术团队为DevExtreme图表引入了注释支持。在v20.1版本中&#xff0c;继续扩展了对Polar Chart&#xff08;雷达图&#xff09;注释的支持&#xff0c;现在可以根据需要应用文本、图像或自定义注释。创建注释后&#xff0c;可以将其附加到Polar …

【Git基础】Gitlab的使用

文章目录 1. 搭建Gitlab1.1 Gitlab介绍1.2 搭建Gitlab 2. Gitlab的权限管理2.1 用户注册2.2 创建用户组2.3 为用户组添加用户2.4 为工程添加访问权限 3. Gitlab的code review4. 团队知识管理4.1 是什么4.2 为什么4.3 怎么做 1. 搭建Gitlab 1.1 Gitlab介绍 GitLab是一个基于Ru…

Kylin-Server-10-SP2-x86_64安装HDP2.7.5.0、Ambari【已解决】

Kylin-Server-10-SP2-x86_64安装HDPAmbari【已解决】 报错赏析解决方案os_check.py主要是三个修改点 参考&#xff1a; 报错赏析 ERROR: Unexpected error Ambari repo file path not set for current OS. ERROR: Exiting with exit code 1. REASON: Failed to create user. E…

anji-plus / AJ-Captcha行为验证码前后端实现

一&#xff0c;简介及源码、文档地址 AJ-Captcha行为验证码&#xff0c;包含滑动拼图、文字点选两种方式&#xff0c;UI支持弹出和嵌入两种方式。后端提供Java实现&#xff0c;前端提供了php、angular、html、vue、uni-app、flutter、android、ios等代码示例。 行为验证码采用嵌…

【软考数据库】第十三章 云计算与大数据处理

目录 13.1 云计算 13.1.1 云计算的关键特征 13.1.2 云计算分类 13.1.3 云关键技术 13.1.4 云计算的安全 13.1.5 云安全实施的步骤 13.2 大数据 前言&#xff1a; 笔记来自《文老师软考数据库》教材精讲&#xff0c;精讲视频在b站&#xff0c;某宝都可以找到&#xff0c…

天线学习笔记——波导中微波模式的理解(TE/TM/TEM)

三种模式的解释 TE/TM/TEM中的“T”是指Transverse的缩写&#xff0c;本意是“横向”&#xff0c;在微波模式中指的是“与传输方向相垂直的方向”&#xff0c;比如说&#xff1a;在三维笛卡尔直角坐标系中波导中的电磁波传输方向是沿着z轴&#xff0c;则把x方向和y方向称为横向…

【8086汇编】用DS和[address]实现字的传送

CPU从内存中读取一个数据单元的数据(1个字节8位)&#xff0c;或者读取一个字的数据&#xff08;2个字节16位&#xff09; DOSBox实操代码验证

低代码应用开发:告别繁琐,实现高效创新

随着企业数字化转型的不断推进&#xff0c;对于软件开发速度、效率和成本的要求也在不断提高。与此同时&#xff0c;随着技术发展&#xff0c;低代码技术逐渐成为了企业快速实现数字化转型的利器。如今&#xff0c;低代码已经广泛应用于各行各业&#xff0c;帮助企业提高应用开…

Splashtop Business Access - 个人和团队可以简单快速、安全高效地访问远程计算机。

Splashtop Business Access&#xff0c;从智能手机&#xff0c;平板电脑或另一台计算机远程访问 Windows PC 和 Mac –就像您坐在计算机前一样。 SPLASHTOP BUSINESS ACCESS 的主要功能 高性能 Splashtop Business Access和我们屡获殊荣的为数以百万计的消费用户提供的产品一…

初识软件测试(常见软件开发模型)

文章目录 软件测试概念篇1. 软件测试常见问题1) 什么是软件测试?2) 调试和测试的区别?3) 测试人员需要具备哪些素质? 2. 软件测试常见名词解释1) 需求2) 软件错误(bug)3) 测试用例 3. 软件的生命周期4. 开发模型1) 瀑布模型2) 螺旋模型3) 增量模型和迭代模型4) 敏捷模型 软件…

【服务器】利用树莓派搭建 web 服务器

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 概述 使用 Raspberry Pi Imager 安装 Raspberry Pi OS 设置 Apache Web 服务器 测试 web 站点 安装静态样例站点 将web站点发布到公网 安装 Cpolar内网穿透 cpolar进行tok…