大厂基础面试题(之二)
Q1:flex布局
Flex布局容器属性包括:
flex-direction: 定义主轴的方向,决定flex容器中的子元素的排列方式
flex-wrap:设置子元素是否换行
flex-flow:是flex-direction和flex-wrap的简写形式,用于设置容器的排列方式和是否换行
justify-content:定义主轴上的子元素的排列方式
align-items:定义侧轴上的子元素的排列方式
align-content:当容器中的行为发生换行时,定义侧轴上多行子元素的排列方式
Q2:ES6的新功能
1.块级作用域:ES6引入了let和const关键字,可以在块级作用域中声明变量。使用let声明变量只在当前作用域内有效,避免了变量提升和全局命名冲突的问题。而使用const声明的常量是一个只读变量,一旦被赋值,就不能再改变。
2.箭头函数:箭头函数式ES6中的一种新的函数声明方式,使用箭头(=>)取代了传统的funtion关键字,箭头函数具有更简洁的语法,并且自动绑定立刻上下文,解决了毁掉含税中this指向问题。
3.解构赋值:解构赋值是一种从数组或对象中提取并赋值给变量的语法。在ES6中,可以使用解构赋值语法快速获取数组或对象中的元素,简化了代码编写和数据交换。
4.默认参数:ES6引入了函数的默认参数,允许在函数定义时为参数提供默认值。如果调用未传递参数,将使用默认值。这样可以简化函数的使用,并且可以传递部分参数,而不是全部参数。
5.扩展运算符:扩展运算符可以将数组或对象展开,提取出其中的元素。在函数调用或数组和对象字面量中,使用...语法可以将数组或对象展开成独立的元素,或将多个元素合并成数组对象。
6.模板字符串:模版字符串时一种更方便的字符串拼接方式,使用反引号(‘)定义字符串,并可以在其中插入比那辆和表达式,提高了代码的可读性和可维护性。
7.类和模块:ES6引入了类的语法糖,使得面向对象编程更加简洁和易用。类可以通过extends关键字实现继承,使用super关键字调用父类的方法。此外,ES6还引入了模块化的概念,通过import和export关键字可以方便地导入和导出模块。
8.迭代器和生成器:ES6中引入了迭代器和生成器的概念,可以简化处理集合和异步变成的复杂度。迭代器是一个包含next()方法的对象,可以按照定义的顺序诸葛返回值,而生成器是一种特殊的函数,可以通过field关键字将状态保存下来,并在需要的时候恢复执行
9.Promise对象:Promise是异步变成的额一种解决方案,可以避免回调地狱和提供更好的错误处理。Promise对象可以表示一个异步操作的最终完成或失败,并能够链式调用和处理多个异步操作。
10.模块化导入和导出:ES6中模块化语法可以更好地组织和管理代码,提供了import和export关键字,以及export default关键字来导入和导出模块。
Q3:promise的运行顺序
主任务 > 微任务(then()、catch()) > 宏任务(setTimeout、requestAnimationFrame)
当我们new 一个Promise时,传入的回调函数为同步代码,会立即执行,而.then() .catch()里面的为异步微任务
Q4: forEach包裹asnyc函数和async for in 循环体里await的运行顺序
//forEach + async/await的例子
function example1() {let promises = [Promise.resolve(1),Promise.resolve(2),Promise.resolve(3),]promises.forEach(async (promise) => {let result = await promise;console.log(result)})console.log(4)console.log(5)
}
example1();
答:4 5 1 2 3 content loaded
先执行console.log(4),这是因为JavaScript的异步处理机制。在你的代码中,forEach循环中的每个Promise都被标记为async,这意味着它们将在后台运行,而主线程将继续执行后面的代码。因此console.log(4)和console.log(5)将首先执行。
当你在javascript中年使用async/await时,你实际上是在创建一个新的Promise。这个Promise在后台运行,而主线程继续执行其他代码。当Promise完成时,它的结果将被返回,但这可能发生在主线程已经执行了代码之后
所以在例子中,forEach循环中的Promise可能还在运行,而主线程已经执行了console.log(4)和console.log(5)。这就是为什么你看到4和5首先被打印出来,然后是1、2、3
Q5:普通函数和箭头函数的this指向
普通函数this指向:哪个对象调用的函数,函数的this就指向谁,否则指向全局,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this指向谁;
箭头函数this指向:指向最外层作用域中的this所指对象
那js的编译和c, c++的编译有什么区别
C++和JavaScript是两种不同类型的编程语言,它们的编译和执行过程有很大的不同。C++需要再编译期间将源代码编译成机器指令,生成可执行文件后才能在特定操作系统上运行。而Javascript则是在解释器中逐步解析和执行源代码。在执行速度、调试难易程度、跨平台支持等方面,C++和Javascript都有各自的优缺点。
Q6:变量提升和暂时性死区的相关概念
变量提升:ES6明确规定,如果区块存在let和const命令,那么就会星程封闭作用域。凡是在声明之前使用这些变量,就会报错。也就是说let、const声明的变量,不会存在变量提升,而var会
暂时性死区:当程序的控制流程在新的作用域进行实例化时,在此作用域中的let/const声明的变量,会现在作用域中创建出来,但此时还未在语法环境中进行注册(没有语法绑定),则此时是不能被访问的,访问就会报错。
从创建变量到可以被访问这一瞬间,叫做暂时性死区
Q7:说一下你了解的http状态码,401和 403的区别
401错误同城与身份验证问题相关,而403错误则与权限相关
Q8: http的缓存机制,cache-control 的nostore和 nocache的区别
Http的缓存机制旨在提高Web性能和减少带宽使用,主要通过在客户端或代理服务器中存储相应数据来实现,以便后续请求中复用这些数据。Http缓存可以分为两类:强缓存和协商缓存。
no-store:彻底禁用缓冲,所有内容都不会被缓存到缓存或临时文件中
no-cache:在浏览器使用缓存前,会往返对比ETag,如果ETag没变,返回304,则使用缓存;使用no-cache的目的就是为了防止从缓存中获取过期的资源
相关文章:
大厂基础面试题(之二)
Q1:flex布局 Flex布局容器属性包括: flex-direction: 定义主轴的方向,决定flex容器中的子元素的排列方式 flex-wrap:设置子元素是否换行 flex-flow:是flex-direction和flex-wrap的简写形式,用于设置容器的排…...
swiftui macOS实现加载本地html文件
import SwiftUI import WebKitstruct ContentView: View {var body: some View {VStack {Text("测试")HTMLView(htmlFileName: "localfile") // 假设你的本地 HTML 文件名为 index.html.frame(minWidth: 100, minHeight: 100) // 设置 HTMLView 的最小尺寸…...
科技云报道:大模型加持后,数字人“更像人”了吗?
科技云报道原创。 北京冬奥运AI 虚拟人手语主播、杭州亚运会数字人点火、新华社数字记者、数字航天员小诤…当随着越来越多数字人出现在人们生活中,整个数字人行业也朝着多元化且广泛的应用方向发展,快速拓展到不同行业、不同场景。 面向C端࿰…...
轻松驾驭时间流:MYSQL日期与时间函数的实用技巧
🌈 个人主页:danci_🔥 系列专栏:《MYSQL应用》💪🏻 制定明确可量化的目标,坚持默默的做事。 轻松驾驭时间流:MYSQL日期与时间函数的实用技巧 MYSQL日期时间函数是数据库操作中不可…...
如何在极狐GitLab 使用Docker 仓库功能
本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在[极狐GitLab…...
streamlit 大模型前段界面
结合 langchain 一起使用的工具,可以显示 web 界面 pip install streamlit duckduckgo-search 运行命令 streamlit run D:\Python_project\NLP\大模型学习\test.py import os from dotenv import load_dotenv from langchain_community.llms import Tongyi load…...
K8s 命令行工具
文章目录 K8s 命令行工具kubectl 工具在任意节点使用kubectl方式创建对象命令显示和查找资源更新资源修补资源编辑资源Scale 资源删除资源查看pod信息节点相关操作 K8s 命令行工具 在搭建集群的时候,我们通过yum 下载了kubeadm kubelet kubectl 三个命令行工具&…...
优先级队列
优先级队列的基本使用 模拟实现上面的接口函数,优先级队列不是队列,而是类似一个堆一样的东西,我们先来试试它的接口函数是怎么个样子的。 需要包含的头文件是queue。 #include<iostream> #include<queue> using namespace std;…...
gitlab使用
个人笔记(整理不易,有帮助,收藏点赞评论,爱你们!!!你的支持是我写作的动力) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔…...
ppt技巧:如何将Word文档大纲中导入到幻灯片中?
在PowerPoint中,将Word文档的大纲导入到新的幻灯片是一种非常实用的技巧。以下是详细的步骤: 首先,需要打开PowerPoint软件并打开原始的幻灯片文件。 在PowerPoint的顶部【开始】菜单栏中,找到并点击“新建幻灯片”按钮࿰…...
0.开篇:SSM+Spring Boot导学
1. 为什么要使用框架 Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 几乎当下所有企业级JavaEE开发都离不开SSM(Spring SpringMVC MyBatis)Spring B…...
7、configMap
1、configMap是什么 类似与pod的配置中心,不会因为pod的创建销毁,相关配置发生改变 pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod 定义。为了能在多个环境下复⽤pod的定义,需要将配置从pod定义描 述中解耦出来。 2、向容器中…...
【Java面试题】JVM(26道)
文章目录 JVM面试题基础1.什么是JVM?2.JVM的组织架构? 内存管理3.JVM的内存区域是什么?3.1堆3.2方法区3.3程序计数器3.4Java虚拟机栈3.5本地方法栈 4.堆和栈的区别是什么?5.JDK1.6、1.7、1.8内存区域的变化?6.内存泄露…...
(十三)强缓存和协商缓存的区别
一、浏览器的缓存策略 浏览器的缓存策略是指浏览器在加载页面时如何使用和管理缓存机制。可以提高网页加载速度,减轻服务器负载,并提供更好的用户体验。常用的缓存策略有两种:一种是发送请求(协商缓存),一…...
如何创建Windows下google Chrome便携版?
创建google Chrome便携版教程 准备工作: 1,下载GoogleChromePortable启动器 2,下载谷歌浏览器 3,下载7-ZIP 解压提取器 用7zip解压GoogleChromePortable,得到GoogleChromePortable.exe启动器 解压谷歌浏览器 用7…...
rabbitmq安装rabbitmq-delayed-message-exchange插件
下载地址:Community Plugins | RabbitMQ 上传到rabbitmq安装目录的/plugins目录下 我的是/usr/lcoal/rabbitmq/plugins/ 直接安装 [rootk8s-node1 rabbitmq]# rabbitmq-plugins enable rabbitmq_delayed_message_exchange [rootk8s-node1 rabbitmq]# rabbitmq-pl…...
B02、分析GC日志-6.3
1、相关GC日志参数 -verbose:gc 输出gc日志信息,默认输出到标准输出-XX:PrintGC 输出GC日志。类似:-verbose:gc-XX:PrintGCDetails 在发生垃圾回收时打印内存回收详细的日志, 并在进程退出时输出当前内存各区域分配情况-XX:PrintGCTimeStamp…...
Redis中的集群(二)
节点 集群数据结构 redisClient结构和clusterLink结构的相同和不同之处 redisClient结构和clusterLink结构都有自己的套接字描述符和输入、输出缓冲区,这两个结构的区别在于,redisClient结构中的套接字和缓冲区是用于连接客户端的,而clust…...
UVA12538 Version Controlled IDE 题解 crope
Version Controlled IDE 传送门 题面翻译 维护一种数据结构,资磁三种操作。 1.在p位置插入一个字符串s 2.从p位置开始删除长度为c的字符串 3.输出第v个历史版本中从p位置开始的长度为c的字符串 1 ≤ n ≤ 50000 1 \leq n \leq 50000 1≤n≤50000,所…...
OAuth2.0客户端和服务端Java实现
oauth2 引言 读了《设计模式之美》和《凤凰架构》架构安全篇之后,决定写一个OAuth2.0的认证流程的Demo,也算是一个阶段性的总结,具体原理实现见《凤凰架构》(架构安全设计篇)。 涉及到的源码可以从https://github.com/WeiXiao-Hyy/oauth2获…...
物流自动分拣系统激光雷达漫反射板
早在二十世纪六十年代,激光器的诞生为激光雷达技术的发展奠定了基础。随后,激光雷达技术开始应用于各种领域,包括军事、航空、地理勘测等。然而,在物流自动分拣领域,激光雷达的应用相对较晚。 随着物流行业的快速发展和…...
2024 抖音欢笑中国年(三):编辑器技巧与实践
前言 本次春节活动中,我们大部分场景使用内部的 SAR Creator互动方案来实现。 SAR Creator 是一款基于 TypeScript 的高性能、轻量化的互动解决方案,目前支持了Web和字节内部跨端框架平台,服务于字节内部的各种互动业务,包括但不限…...
Python学习入门(1)——基础语句(二)
14. 迭代器和迭代协议 在Python中,迭代器是支持迭代操作的对象,即它们可以一次返回其成员中的一个。任何实现了 __iter__() 和 __next__() 方法的对象都是迭代器。 class Count:def __init__(self, low, high):self.current lowself.high highdef __i…...
vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示
vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示(考勤打卡) 一、创建百度地图账号,获取秘钥二、 引入插件1、安装vue-baidu-map2、在main.js中引入 三、 简单使用 最近写项目的时候,做到了考勤打卡的模块内容&#x…...
使用idea运行程序,发现控制台的中文出现乱码
修改UTF-8发现没有效果,寻找.idea文件夹的encodings.xml文件,将里面的UTF-8全部变成GBK....
基于javassm实现的大学生兼职信息系统
开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&…...
O2OA开发平台如何查看数据表结构?
在访问后端api地址,页面最下方有列示平台的各个服务,点击进入可查看具体的表内容 后端api地址: http://{hostIP}/x_program_center/jest/list.html 其中:{hostIP}为中心服务器所在域名或者IP地址 如下图:...
心理测评性格测试矩阵版h5微信抖音QQ快手小程序app开源版开发
心理测评性格测试矩阵版h5微信抖音QQ快手小程序app开源版开发 支持SAAS、支持独立加密、支持独立开源、价格不同。 自带题库数据,后台一键初始,支持自己上传题目 心理测评 微信公众号微信小程序抖音小程序可打包APP 支持单题、跳跃题、计分题、因子题、…...
【蓝桥杯】十六进制转八进制 C++实现
1.题目信息 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<n<10)。 接下来n行,每行一个由09、大写字母AF组成…...
明明设置数字居中对齐,为什么excel的数字却不居中?
有时候在excel里,选中数据,设置对齐方式 左右居中,然而,数字却怎么都不居中,为什么呢? 1.按快捷键Ctrl1,打开单元格自定义格式对话框,看到是初始界面是在数字的会计专用,…...
武清做网站/郑州百度快照优化
转自 : http://apps.hi.baidu.com/share/detail/37687288 登录 Ubuntu 以后 , 开始用命令行进行逐一安装 : 安装 apache 服务 sudo apt-get install apache2 安装 php5 sudo apt-get install php5 apache 关联 php5 sudo apt-get install libapache2-mod-php5 启动 apache s…...
上海做网站费用/域名注册 阿里云
到mysql官网https://dev.mysql.com/downloads/mysql/下下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下…...
使用vue做的商城网站/电子商务网站建设方案
RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件。可用于Windows下的CodeGear Delphi 6-2010。关于RealThinClient SDK的教程会持续更新,本节是RealThinClient SDK的第二课,如何使用构建的服务器发送动态生成…...
wordpress手机速度插件/湖南seo推广系统
1、SortedList定义 System.Collections.SortedList类表示键/值对的集合,这些键值对按键排序并可按照键和索引访问。SortedList 在内部维护两个数组以存储列表中的元素;即,一个数组用于键,另一个数组用于相关联的值。每个元素都是一…...
湖南网站建设策划/网络营销期末考试试题及答案
打包jar上传到服务器 会生成三个文件(就是如图maven-status下面的) 上传到服务器中的jar包一定是最下面那个带有依赖的,才能运行成功。不然会报文件找不到错误 如图就是那个文件找不到...
精品建设课程网站/短网址链接生成
Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化 原文:Win8 Metro(C#)数字图像处理--2.59 P分位法图像二值化[函数名称] P分位法图像二值化 [算法说明] 所谓P分位法图像分割,就是在知道图像中目标所占的比率Ratio时,循环不…...