首页 > 其他分享 >web前端面试题(一直更新)

web前端面试题(一直更新)

时间:2024-05-14 12:31:08浏览次数:17  
标签:web 面试题 join 渲染 前端 元素 arr var 路由

一、Vue

1、v-show和v-if不同

(1)实现方式

v-if是一种条件渲染指令,它会根据表达式的值来插入或删除元素。当表达式的值为真时,元素会被插入到DOM中,否则会从DOM中删除。

v-show是一种简单的显示/隐藏指令,它会根据表达式的值来显示或隐藏元素。当表达式的值为真时,元素会被显示,否则会被隐藏。

(2)性能

由于v-if的工作原理是从DOM中添加或删除元素,因此它对于频繁切换的元素具有较高的开销。每次切换时,v-if都需要重新渲染元素及其所有子元素。

v-show则不会从DOM中删除元素,而是使用CSS的display属性来控制元素的显示或隐藏。因此,v-show对于频繁切换的元素具有更好的性能,因为元素的渲染不需要重复进行。

(3)适用场景

v-if适用于只有在满足特定条件时才需要渲染的元素,因为它可以节省不必要的DOM元素和子元素的渲染开销。

v-show适用于需要在不同的状态之间切换的元素,因为它可以避免在切换时重新渲染元素及其所有子元素。

 2、vue-router路由模式有几种

1:Hash 模式(默认):

在 URL 中使用带有 # 符号的哈希值来管理路由。例如:http://xxxx.com/#/path。 在 Hash 模式下,当 URL 的哈希值发生变化时,浏览器不会向服务器发送请求,而是通过监听 hashchange 事件来进行路由导航。

2:History 模式:

使用 HTML5 的 History API 来管理路由。这种模式下,URL 不再需要使用哈希值,而是直接使用正常的 URL 地址。例如:http://xxxx.com/path。 在 History 模式下,当 URL 发生变化时,浏览器会向服务器发送请求,服务器需要配置相应的路由规则,以确保在刷新页面或直接访问 URL 时能正确响应路由。

3:Abstract 模式:

这种模式主要用于非浏览器环境,比如在服务器端渲染(Server-Side Rendering)时使用。 在 Abstract 模式下,Vue Router 不会对 URL 进行任何处理,而是将路由信息保存在内存中,通过编程方式进行路由导航。

可以通过创建 Vue Router 实例时的 mode 配置项来选择使用哪种路由模式。例如:

 

二、CSS

1、Css隐藏元素的方法

1、display:none

2、opacity属性透明度为0

3、Visibility:hidden

visibility:hidden 隐藏元素,位置还存在与页面文档流中,不会被删除,所以会触发浏览器渲染引擎的重绘

opacity:0 将元素设置为透明,位置还存在页面文档流中,不会被删除,所以会触发浏览器渲染引擎的重绘

display:none 隐藏元素,且其位置也不会被保留下来,所以会触发浏览器渲染引擎的回流和重绘。

visibility:hiddendisplay:none的显著区别

display:none和visibility:hidden,都能够将元素隐藏。但是visibility:hidden隐藏的元素在页面中仍占据着位置,也就是说该元素后面的元素会给这个设置visibility:hidden的元素空出位置。而display:none隐藏的元素不会再占据着页面的位置。

 2、简述Css盒子模型

页面就是由一个个盒模型堆砌起来的,每一个html元素都可以叫做盒模型。CSS盒模型就是在网页设计中经常用到的CSS技术所使用的一种思维模型。盒模型(Box Modle)可以用来对元素进行布局,由内到外包含实际内容、内边距、边框、和外边距四个部分。

 一个盒子中主要的属性就5个:width、height、padding、border、margin

 W3C盒子模型(标准盒模型):width和height指的是内容区域的宽度和高度

即:在标准模式下,元素总宽度 = 内容的width + padding(左右) + border(左右) + margin(左右)

IE盒子模型(怪异盒模型):width和height指的是内容区域、边框、内边距总的宽度和高度

即:在怪异模式下,元素总宽度 = 内容的width + margin(左右)(这里的width包含了padding(左右)和border(左右)的值)

三、JavaScript

1、JavaScript的数据类型

基本数据类型(值类型):Number、String、Boolean、Undefined、Null、Symbol(es6新增的一种独一无二的值)和BigInt(es10新增),这些类型可以直接操作保存在变量中的实际值。

引用数据类型:Object。包含Object、Array、function、Date、RegExp。(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象,正则表达式是对象)

 2、字符串转换成数组

通过split分割,将字符串分割成数组

var a= "1,2,3,4";
var b = a.split(",");
 b=[1,2,3,4]

3、数组转换成字符串

有三种方式,toString、toLocaleString、join

toString()    将数组转换成一个字符串
toLocaleString()    把数组转换成本地约定的字符串
join()    将数组元素连接起来以构建一个字符串

(1)join

join()    可理解为直接变成字符串,默认逗号分隔
join(“a”)   括号中的数据可以为、。! -等,将数据中的“,”替换

join()
var a=["1","2","3"]
var b=a.join()
b="1,2,3"

join("-")
var a=["1","2","3"]
var b=a.join("-")
b="1-2-3"

(2)toString

toString不需要指定分隔符
var a=["1","2","3"]
var b=a.toString();
b="1,2,3"
如果需要设置分隔符的化使用replace方法

(3)toLocaleString

join("-")
var a=["1","2","3"]
var b=a.toLocaleString();
b="1-2-3"

 4、将两个数组合并到一起

(1)concat

var arr=[1,2,3]
var arr2=[4,5,6]
arr=arr.concat(arr2)

(2)push

var arr=[1,2,3]
var arr2=[4,5,6]
arr=arr.push(...arr2)

(3)unshift

var arr=[1,2,3]
var arr2=[4,5,6]
arr=arr.unshift(...arr2)

push和unshift结合...[]使用

 

其他

1、Var与let、const的区别?

1、var在ECMAscript所有版本可以使用,let和const在ECMAscript6和更晚的版本使用

2、Var和let声明的变量都是可以改变的,不仅可以改变在也可以改变类型。Const声明叫常量,一经定义就不可改变

3、var与let的区别在与作用域。var的声明范围是函数作用域,在全局范围内声明,。Let只在块级作用域中

4、const声明对象需要初始化其他两个不需要

5、Let不允许重复声明

2、和=区别

1、==:先转换为同一数据类型再进行比较

2、===:先比较数据类型,数据类型不一致直接返回false

var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。

 3、em、rem、px、rpx的区别

单位名称 说明 web 小程序
px 绝对单位,代表像素量 支持 支持
em 相对单位,相对于父元素的字体大小 支持 支持
rem 相对单位,相对于页面跟标签html的字体大小 支持 不支持
rpx

相对单位,小程序独有,750px等于视口宽度,可以根据屏幕自适应缩放

不支持 支持

 

 

 

 

 

 

标签:web,面试题,join,渲染,前端,元素,arr,var,路由
From: https://www.cnblogs.com/lixianhui/p/18181596

相关文章

  • 计算机网络常见面试题总结(上)
    计算机网络常见面试题总结(上)OSI七层模型应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。每一层都为上一层提供服务TCP/IP四层模型应用层,传输层,网络层,网络接口层,各层相互独立,为上层提供服务常见的网络协议应用层:HTTP,超文本传输协议,浏览器网页使用的就是HTTP请求加载的。SM......
  • 一道需要仔细看的java面试题
    publicstaticvoidmain(String[]args){ Map<String,Object>resultMap=newHashMap<String,Object>(); Stringstr=MapUtil.getStr(resultMap,"yyyy"); System.out.println("++"+str); System.out.println(&......
  • WEB自动化测试-CSS定位
    CSS相对定位:1、可维护性更强2、语法更加简洁3、可以解决复杂定位场景调试方法:1、进行浏览器的console:2、输入:$(""),输入内有字符串和外层字符串相反,外单内双,外双内单CSS基础语法4方式1、id:$("#site-logo")格式:$("#+id")2、class:(".logo-big")格式:$("......
  • 3 个好玩的前端开源项目「GitHub 热点速览」
    单休的周末总是短暂的,还没缓过神新的一周就又开始了。如果你和我一样状态还没有完全恢复,那就让上周好玩的开源项目唤醒你吧!每周GitHub上总是有一些让人眼前一亮的开源项目,上周好玩的前端项目特别多,比如这个3D地球的JavaScript组件Cesium,作为老牌地理信息可视化组件又一次......
  • SQL经典面试题
    一、连续问题▶如下数据为蚂蚁森林中用户领取的减少碳排放量问题:找出连续3天及以上,减少碳排放量在100以上的用户。思路:① t1②t2③ t3④最终版 二、分组问题▶如下电商公司用户访问时间数据  (ts单位:秒)问题:某个用户连续的访问记录,如果时间间隔<60秒......
  • WEB UI
    1.在IDE中编写Flink代码,查看WebUI,从而来了解Flink程序的运行情况<dependency><groupId>org.apache.flink</groupId><artifactId>flink-runtime-web</artifactId><version>${flink.version}</version></dependency&......
  • Stable Diffusion WebUI 绘画
    配置环境介绍目前平台集成了StableDiffusionWebUI的官方镜像,该镜像中整合如下资源:立即免费体验:https://gpumall.com/login?type=register&source=cnblogsStableDiffusionWebUI版本:v1.7.0Python版本:3.10.6Pytorch版本:2.0.1CUDA版本:11.8Xformers版本:0.0.20Gradio版本......
  • Django 安全性与防御性编程:如何保护 Django Web 应用
    title:Django安全性与防御性编程:如何保护DjangoWeb应用date:2024/5/1320:26:58updated:2024/5/1320:26:58categories:后端开发tags:CSRFXSSSQLUploadHTTPOnlyPasswordSession跨站请求伪造(CSRF)跨站请求伪造(CSRF)是一种常见的网络攻击,它利用用户的身份......
  • 用curl调试简单webapi
    curl,即用户url。windows自带(据说新版的linux也自带),可以发送请求,用来简单调试webapi很合适。使用:cmd下直接输入命令。 例子:对于模型类 publicrecordStu(stringXm,intNl); post表单:curl-XPOST-d"Xm=ZS&Nl=20"http://localhost:5205/weatherforecast接收的weba......
  • Python3开发一个web项目
    准备工作#安装Web框架pipinstallDjango#创建一个项目pythondjango-admin.pystartprojectitstyle#切换目录cditstyle#创建Apppythonmanage.pystartappnovel一般一个项目有多个app,当然通用的app也可以在多个项目中使用,然后启动服务:#默认端口是800......