记录面试问题

2023-05-16

以下问题不分先后,按照印象深浅排序,可能一次记录不完成,后面想起来会及时补充,如有不对,恳请各位围观大佬多多指教🙏

印象最深的是一道很简单很简单的题目,我结束面试之后赶紧代码敲敲发现答错了,我天,没怎么复习就面试确实是不会太理想,题目是这样子的:"1"+2-"1",最后输出是什么东西,我一开始是想到的是字符串拼接,"1"+2那就是12,但是再减去"1",我就蒙了,我想到了有一个东西叫隐式转换,但是具体也没想起来是啥,后来瞎回答了一通,感觉应该是NaN吧,然后。。。就答错了。我通过开发者工具控制台输入正确答案如下图,应该这里面首先运算是从左至右,字符串1加上数字2确实是拼接变成12,接着减去字符串1就是通过隐式转换规则变成nunber类型,所以最后结果就是11。


还有一个很简单的问题就是外边距塌陷的问题,问题产生原因如下,解决方式有好几种,(1)给父级元素添加overflow: hidden;(2)给父级元素添加border: 1px solid #ccc;(3)给父级元素或子级元素添加float: left;(4)给父级元素添加display: inline-block;等等

    .f {
        background-color: aqua;
        width: 100px;
        height: 100px;
    }

    .s {
        background-color: blueviolet;
        width: 30px;
        height: 30px;
        margin-top: 20px; //外边距不生效
    }


    <div class="f">
        <div class="s"></div>
    </div>


面试中还问到了css布局有哪些,也是好久没复习了,所以就想到了目前项目中用到的百分比布局(宽度的值使用百分比来编写,通过窗口大小来计算宽度的百分比)以及flex布局(弹性布局,通过display:flex属性把容器元素变成flex容器,用来适应不同屏幕大小),但是css布局不只有这些,我百度也随便查了查,还有标准文档流布局(也就是从上往下排列,从左至右排列,块级元素独占一行,行内元素和行内块元素紧挨着排列在一行);浮动布局(通过float属性使元素脱离文档流);定位布局(子绝父相,通过position和top、left、right、bottom来进行布局)


问题:css伪元素的用法,以及具体排序。我一下子就只想起来两个(before和after),伪元素不只是两个,还有"first-line" 伪元素用于向文本的首行设置特殊样式,"first-letter" 伪元素用于向文本的首字母设置特殊样式;before排在内容的前面,after排在内容后面的;代码以及效果如下:

    .ha {
        background-color: antiquewhite;
    }

    .ha::before {
        content: "";
        display: inline-block;
        width: 30px;
        height: 10px;
        background-color: blueviolet;
    }

    .ha::after {
        content: "";
        display: inline-block;
        width: 50px;
        height: 10px;
        background-color: brown;
    }

    <div class="ha">
        哈哈哈哈哈哈
    </div>

 


说说DOM和BOM,这一块也是没怎么复习到,忘了好多,现在查查资料也想起来一些。首先JavaScript由ECMAScript,DOM和BOM构成,ECMAScript是标准化的脚本程序设计语言,用来描述js基本语法及对象;DOM是文档对象模型,提供可以处理网页内容的方法及接口;BOM是浏览器对象模型,提供与浏览器交互的方法与接口。


问题:for in和for of循环的区别,好巧不巧,也没答得太对。现在自己敲代码查资料验证一下,代码示例如下:

<script>
    var arr = [
        {
            id: 1, title: "一生一世", name: "李白"
        },
        {
            id: 2, title: "千秋万世", name: "杜甫"
        },
        {
            id: 3, title: "三生三世", name: "白居易"
        }]
    var obj = {
        color: "#33ffba", number: 1234
    }
    for (const key in arr) {
        console.log(key, "for in 直接输入数组的下标");
        if (Object.hasOwnProperty.call(arr, key)) {
            const element = arr[key];
            console.log(element, "for in输出数组")
        }
    }
    console.log("-------------------------------------------");
    for (const item of arr) {
        const element = item
        console.log(element, "for of输出数组");
    }
    console.log("-------------------------------------------");
    for (const key in obj) {
        if (Object.hasOwnProperty.call(obj, key)) {
            const element = obj[key];
            console.log(element, "fon in输出对象")
        }
    }
    for (const item of obj) { //会报错obj is not iterable
        const element = item
        console.log(element, "for of输出对象");
    }
</script>

for of和for in 都可以用来循环。for of是ES6引入的新特性,不能循环普通的对象,支持iterable类型的集合,包括有Array、Map、Set;for in循环得到的是数组的下标(或对象的键),for of循环直接得到的是值;推荐循环数组时使用for of,循环对象是时使用for in。


问题:如何在循环中跳过某次循环,但是继续执行其他循环。这个问题当时就只想到了break和return都是结束整个循环,但是还有一个想不起来是啥了,答案一定就是那个,结束面试后突然想起来那个单词的中午意思就是继续,我天,这脑子有点不行啊。示例代码如下:

    // 跳过嘿嘿不打印
    var arr = ["哈哈", "嘿嘿", "呵呵", "嘻嘻"]
    for (let index = 0; index < arr.length; index++) {
        const element = arr[index];
        if (arr[index] == "嘿嘿") {
            continue
        }
        console.log(element, "打印"); //除了嘿嘿,都打印出来了
    }
    console.log("---------------------");
    for (let index = 0; index < arr.length; index++) {
        const element = arr[index];
        if (arr[index] == "嘿嘿") {
            break
        }
        console.log(element, "打印"); //只有哈哈
    }

  


 问题:数组去重的方法有哪些?

方法一:通过indexOf去判断,如果返回值等于-1,那就代表数组中没有匹配到相同的元素,示例代码如下:

    // 假设数据,通过id来去重,id相等那就只保留一个
    var listData = [{
        id: 23, name: "哈哈"
    }, {
        id: 25, name: "呵呵呵"
    }, {
        id: 23, name: "哈哈"
    }, {
        id: 21, name: "嘿嘿"
    }, {
        id: 25, name: "呵呵呵"
    }, {
        id: 21, name: "嘿嘿"
    }, {
        id: 23, name: "哈哈"
    }]
    var newArr = []; //最终获得的数据
    var arrId = []; //筛选出来的id集合
    // 首先使用for of遍历数组
    for (var item of listData) {
        // 接着判断id集合是否存在数组中的id,indexOf如果没有找到匹配的字符串则返回-1
        if (arrId.indexOf(item["id"]) == -1) {
            arrId.push(item["id"]); //往arrId中使用push追加id值
            newArr.push(item); //存符合条件id的所有数据
        }
    }
    console.log(newArr, "newArr的值");
    console.log(arrId, "arrId的值");

输出结果截图:

 方法二:通过es6 set去重,示例代码如下:

    // 假设数据,相同的字符串只保留一个
    var strArr = ["aa", "cc", "ee", "aa", "kk", "yy", "cc", "yy", "pp", "ff", "kk"]
    function unique(arr) {
        return Array.from(new Set(arr)); //Array.from() 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例
    }
    console.log(unique(strArr), "strArr的值");

输出结果截图:


先记这么多,下次再继续补充!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录面试问题 的相关文章

  • 流媒体服务器之 ZLMediaKit介绍

    流媒体服务器是流媒体应用的核心系统 xff0c 是运营商向用户提供视频服务的关键平台 流媒体服务器的主要功能是对流媒体内容进行采集 缓存 调度和传输播放 流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量 因此 xff0c 流媒
  • WebRTC 教程三:WebRTC特性,调试方法以及相关服务器搭建方法

    WebRTC 教程一 xff1a WebRTC信令 架构和 API 入门 WebRTC 教程二 xff1a WebRTC API 和 Leak 本文是 WebRTC 的第三篇教程 xff0c 主要介绍了 WebRTC 的一些特性 xff0c
  • 能不能在头文件中定义全局变量?

    首先 xff0c 这是一篇科普文 xff0c 所以 比较杂 xff0c 我尽量写清楚一些 1 ANSI C标准是什么 xff1f GNU又是什么 xff1f ld是什么 xff1f ANSI C是C语言的标准规范 xff0c 是国际标准化组
  • FFmpeg转码流程详解

    前言 音视频转码主要指这样的概念 xff1a 容器格式的转换 xff0c 比如MP4转换为MOV 容器中音视频数据编码方式转换 xff0c 比如H264编码转换成MPEG4编码 xff0c MP3换为AAC 音视频码率的转换 xff0c 比
  • FFmpeg 代码实现流媒体推流(RTSP)

    实时录屏并把视频推流到RTSP服务器 xff0c 具体流程是抓取屏幕内容 bitmap xff0c 并把bitmap转化为YUV xff0c 接着把YUV编码成H264 xff0c 再把H264码流推到RTSP服务器 xff1b 把采集到的
  • rtsp协议的理解

    一 rtsp协议概述 RTSP xff08 Real Time Streaming Protocol xff09 实时流传输协议 xff0c 是TCP IP协议体系中的一个应用层协议 该协议定义了一对多的应用程序如何有效地通过IP网络传送多
  • QT 程序打包的方法

    01前言 很多朋友因为要把程序放到不同电脑的环境去测试 xff0c 而又不可能每一台电脑都安装了QT的开发环境 xff0c 于是乎有了将程序打包的想法 这里用来的包的工具是windeployqt xff0c 是QT官方自带的打包软件 xff
  • C++Qt开发——事件处理函数

    事件 event 是由系统或者Qt本身在不同时刻发出的 当用户按下鼠标 敲下键盘 xff0c 或者其它情况时候都会发出一个相应的事件 一些事件在对用户操作做出相应时发出 xff0c 如键盘事件等 xff1b 另外一些则是由系统自动发出 xf
  • C++Qt开发——类图结构

    Qt 类图 系统性地总结一下相关的知识点 xff0c 这里有个网图 xff0c 是Qt的类图 xff0c 看完可以对Qt整体的框架有一个大致的了解 xff0c 具体如下 CSDN QT大纲 xff1a Qt开发必备技术栈学习路线和资料 Qt
  • QT如何实现一个五子棋游戏

    FIR pro QT 43 61 core gui TARGET 61 FIR TEMPLATE 61 app SOURCES 43 61 main cpp widget cpp HEADERS 43 61 widget h wight h
  • Qt5实现UDP通信的示例代码怎么写

    QT5实现UDP通信的示例代码怎么写 xff0c 很多新手对此不是很清楚 xff0c 为了帮助大家解决这个难题 xff0c 下面小编将为大家详细讲解 xff0c 有这方面需求的人可以来学习下 xff0c 希望你能有所收获 前言 该例程经过实
  • OpenCV+Qt实现图像处理操作工具

    一 目标 Qt界面实现 雪花屏 高斯模糊 中值滤波 毛玻璃 灰度化 XY方向模糊 双边模糊 腐蚀 图像处理操作 要求左边原图 xff0c 右边效果图 结果展示如下 xff1a 图像处理实现有点多 xff0c 就不一个一个地展示了 xff0c
  • 链表的建立、赋值、输出、查找、增、删

    include lt stdio h gt include lt string h gt include lt math h gt include lt stdlib h gt typedef struct node 定义结构体 int n
  • 蓝桥杯-串口

    本文通过电脑串口发送文本模式和HEX模式进行介绍串口的简单使用 xff01 注意事项 xff1a 1 本节通过定时器2的串口1 进行串口控制 2 串口如果开启了 编程完成后自动打开串口会导致第一次发送无法看到 xff08 HEX模式 xff
  • GSV2008

    GSV2008 是HDMI2 0 四进二出矩阵 xff0c 自持HDCP2 2 xff0c 支持DOWN SCALER 四个HDMI输入 xff0c 2个HDMI输出 xff0c 自动EQ 应用 xff1a 1 xff0c 功放 ARC C
  • 漏洞挖掘-从任意文件读取漏洞到获取账户利用

    开篇 大家好 xff0c 我是承影战队的v1ct0ry xff0c 这次我为大家分享一次比较有趣的漏洞挖掘经历 这次挖掘过程是以灰盒挖掘为主要思想进行展开 xff0c 不熟悉的读者可以阅读上篇文章熟悉一下 一 任意文件读取 开局我们通过扫描
  • curl命令行工具

    转载 curl 命令行工具的使用及命令参数说明 curl的使用 1 1 URL访问 1 2 表单提交 1 3 其它HTTP请求方法 1 4 文件上传 1 5 HTTPS支持 1 6 添加请求头 1 7 Cookie支持curl语法及选项cu
  • Ubuntu20.4安装ROS系统教程(自用)

    1 Ubuntu各个版本系统对应的ROS版本 1 2Ubuntu16 04与ROS kinetic的安装 1 2 1Ubuntu16 04配置 1 2 2安装ROS kinetic版 1 3Ubuntu18 04和ROS melodic的安
  • UART 空闲中断+DMA接收流程

    在项目中利用UART空闲中断接收外部信号 xff0c 利用DMA接收 xff0c 实现外部到内存的传输 通过分析其它文章的代码 xff0c 大概如下 xff1a span class token comment 配置 DMA Stream

随机推荐

  • 5分钟带你从数据类型了解Java相比C/C++有什么优势

    数据类型是一门语言的血肉 xff0c 通过这5分钟的浏览 xff0c 只学过C C 43 43 的小伙伴会初步了解Java的一些特性 xff0c 学过一点Java的朋友在读完这篇文章后也一定会对Java的语法规范有更深刻的了解 Java数据
  • 备赛电赛学习硬件篇(一):电机部分

    目录 一 电机选型 二 电机的正反转 xff0c 刹车 一 电机选型 1 电机类型 无刷电机较贵 xff0c 但是静音且损耗小 xff0c 由于霍尔元件的特殊性 xff08 不带霍尔需要转速高的时候才可以利用反电动势准确确定转子的位置 xf
  • 【总线】一文看懂RS232和RS485通信总线

    目录 RS232概述 RS232特性 RS485 概述 RS485 特性 RS232 和 RS485 的区别 区别总结 RS232概述 RS 232接口符合电子工业联盟 xff08 EIA xff09 建立的串行数据通信接口标准 原始编号是
  • 【C++学习笔记】vector构造函数

    文章目录 1 vector构造函数说明 xff1a 2 实战 xff1a 2 1 vector构造函数代码示例2 2 输出 3 参考资料 1 vector构造函数说明 xff1a span class token keyword templ
  • 请求报文/相应报文

    一 请求报文分为4个部分 请求行 请求头 请求空行 请求体 1 1 请求行 主要是3个部分 GET 请求方式 1 2 请求地址 所带的参数 demo demo php userName 61 E6 9D 8E E5 9B 9B amp us
  • python+requests——高级用法——auth认证

  • C语言char指针的使用

    在c语言中 xff0c char指针不仅能指向char变量 xff0c 还能指向常量字符串 xff0c 同时也能指向一个char数组的 想要访问单个字符 xff0c 就要通过 来进行解引用 xff0c 若是要访问整个数组或字符串的话 xff
  • HTTP协议的请求格式解析

    HTTP协议是一个使用较多的应用层协议 xff0c 它是一个请求 响应式的一个协议 xff0c 就是我客户端给你发一个请求 xff0c 你客户端需要返回给我一样响应 首先我们来看一下HTTP协议的请求格式 HTTP请求格式 xff1a HT
  • 运行Gazebo+moveit+Rviz,报错,提示无控制器

    在rviz里规划成功后 xff0c 执行显示failed rviz里能规划 xff0c 但是Gazebo里动不了 moveit报错如下 xff1a WARN 1679466487 132361192 26 763000000 Waiting
  • 基于UDP协议搭建的简单客户端与服务器(UDP协议)

    UDP协议 UDP协议的介绍1 UDP的缺点 基于UDP实现的回显服务器基于UDP实现的客户端 UDP协议的介绍 UDP协议特点 xff1a 1 无连接 2 面向数据报 3 不可靠传输 4 全双工 16位源端口号 目的端口号 xff1a 表
  • C++之AStar寻路算法

    仅以记录 有一种算法 名为AStar 它的作用是求图中两点之间的最短路径 沉迷 该算法的我 自己编写了一个版本 注释虽少 但求传神 代码虽 恶心 但求理解 include lt iostream gt include lt vector g
  • 使用livox_viewer2对激光雷达livox_mid360进行调试

    准备 系统 windows10 硬件 xff1a livox mid360 软件 xff1a livox viewer2 测试 连接号激光雷达设备 xff0c 电脑ip相关设置和livox avia一样 livox系列激光雷达ip设置都是一
  • 听说你还不会制作“GIF动图”,手把手包教会,这不就来了吗

    近期 xff0c 看了好多写的博客 xff0c xff08 不管是前端HTML的还是后端Java的 xff0c 前端制作的3D部分的效果图需要展示动图 xff09 发现有点还存在想使用动图 xff0c 但是不会制作 xff0c 又或者是制作
  • HTML+js实现贪吃蛇小游戏(内含完整代码)

    案例分析 看图拆解游戏 首先我们根据图片上的内容把这个游戏拆解成几个部分去单独看 xff1a 最外面的大盒子包裹着内容加边框限制蛇的活动范围 xff0c 整个范围可以看成由许多小方格排列构成的 xff0c 例如这样子的 xff1a xff1
  • 【华为Hilink SDK Linux系统开发】第三章:华为hilink SDK Linux系统网关适配

    mark xff1a https blog csdn net qq 24550925 article details 107282773 关注嘉友创科技公众号 声明 xff1a 文章只做技术交流 xff0c 没有其他任何用途 xff0c 侵
  • 快速去除GIF动图的背景(让背景变透明),保姆级教程

    很多小伙伴在看到好看的动图效果时 xff0c 想用在自己的页面上 xff0c 可是常常会碰到一些动图背景颜色不符合自己的需求 xff0c 所以会产生修改动图背景的想法 xff0c 但是GIF动图终究是GIF动图 xff0c 不像静态图片那样
  • Vue在HTML中如何使用

    x1f440 Vue是什么 一套用于构建用户界面的渐进式JavaScript框架 构建用户界面 xff1a 数据变成界面渐进式 xff1a Vue可以自底向上逐层的应用 x1f440 Vue如何使用 一 引入vue js lt script
  • 简单记录一下怎么看package.json文件

    首先每个vue工程文件从仓库克隆代码下来的时候 xff0c 一般都会包含这个文件 xff0c 这个文件非常重要 xff0c package json包含了关于项目重要信息 xff0c 如下图所示 其中包含了name version desc
  • 项目中常用到的前端vue根据后端接口返回文件地址实现在线预览和下载功能

    简简单单的记录一下项目中做过的东西 项目中时常会有要求查看附件 xff0c 附件的下载的要求 xff0c 在这里简单记录一下前端vue根据后端接口返回文件地址实现在线预览和下载功能 x1f440 文件在线预览 目前我这里使用的是点击a链接跳
  • 记录面试问题

    以下问题不分先后 xff0c 按照印象深浅排序 xff0c 可能一次记录不完成 xff0c 后面想起来会及时补充 xff0c 如有不对 xff0c 恳请各位围观大佬多多指教 x1f64f 印象最深的是一道很简单很简单的题目 xff0c 我结