每日一题面试题 - 持续更新

2023-10-26

周一到周五更新

1、undefined和null的区别-20230614

undefined:

(1)声明了一个变量,但没有赋值

(2)对象属性没有赋值

(3)调用函数没有提供相应的参数

(4)函数没有返回值,默认undefined

(5)undefined 是声明了变量但未对其初始化时赋予该变量的值。 - ECMAScript官网原话

null:

(1)实际就是一个空对象

(2)原型链的终点

(3)null 则用于表示尚未存在的对象,如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。 ECMAScript官网原话

为什么undefined == null会返回true?

很多人认为是因为它们的布尔值都是false,因为 == 会进行类型转换,所以就会返回true,其实这种说法不是很合理:

----------battle环节----------

与面试官battle的时候直接说:官方文档是这样说的,值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

typeof null        // "object" (因为一些以前的原因而不是'null')
typeof undefined   // "undefined"
null == undefined // true
null === undefined // false

2、sessionStorage、localStorage和cookie的区别-20230615

(1)cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存.

(2)存储大小,cookie存储4K,sessionStorage和localStorage最大5M

(3)数据有效期不同

cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭

sessionStorage:仅在当前浏览器窗口关闭之前有效;

localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;

上面的区别都是必须要跟面试官百分百答出来的,但是有些面试官比较ex,会问

面试官:那同域下多窗口间localStorage能共享吗?

回答:答案是可以的,因为localStorage是持久化数据共享,只有手动清除才会清除数据

下面才是重点戏呀!!!!!!!!1

面试官:localStorage既然可以,那sessionStorage在多窗口之间能共享状态吗?

----------battle环节----------

这个才是重头戏,记住一句话就行了:在该标签或窗口打开一个新页面时会复制顶级浏览会话的上下文作为新会话的上下文。

这句话的意思是,在A页面复制url打开新页面B,B页面的sessionStorage是和A页面一样的,但是如果A页面中修改了sessionStorage,此时的B页面仍然还是旧A的sessionStorage数据,这一点需要注意。所以接下来跟面试官battle。

多窗口之间sessionStorage不可以共享状态!!!但是在某些特定场景下新开的页面会复制之前页面的sessionStorage!!

3、v-modal双向数据绑定-20230616

<input type="text" :value="username" @input="username = $event.target.value" />

----------battle环节---------- -20230619

跟面试battle的时候说:v-modal其实就是一个语法糖,它内部做了两个事情,首先v-bind绑定了一个value,然后触发了@input事件把$event.target.value赋值给了所绑定的value值

4、mvc和mvvm的区别

mvc

M(Model):模型层。是应用程序中用于处理应用程序数据逻辑的部分,模型对象负责在数据库中存取数据;
V(View):视图层。是应用程序中处理数据显示的部分,视图是依据模型数据创建的;
C(Controller):控制层。是应用程序中处理用户交互的部分,控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

mvvm

vue框架中MVVM的M就是后端的数据,V就是节点树,VM就是new出来的那个Vue({})对象

M(Model):模型层。就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model。
V(View):视图层。就是展现出来的用户界面。
VM(ViewModel):视图模型层。连接view和model的桥梁。因为,Model层中的数据往往是不能直接跟View中的控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

----------battle环节---------- 

mvc和mvvm都是一种设计模式mvvm其实就是mvc的升级版,但是不是替代版,只是将其中的Controller抽离了出来;Model就是模型,就是一个访问数据层,处理数据的,比如ajax,axios这样一个model;然后 View就是视图层,结构,布局,外观,mv就是视图模型,处理m和v之间的关系, View与ViewModel之间通过双向绑定建立联系,这样当View(视图层)变化时,会自动更新到ViewModel(视图模型),mvc单向数据,mvvm是双向数据

mvvm的好处:1、低耦合2、可重用性高3、分层开发,结构分明,便于维护

本文是站在面试的角度去回答,基本都是大白话,但是其中的原理一定一定一定要搞明白,这样与面试官去battle的时候,自己才有十分的自信怼回去。要是有更好的回答可以一起讨论。仅供参考!仅供参考!仅供参考!

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

每日一题面试题 - 持续更新 的相关文章

  • javascript 可以从父页面访问 iframe 元素吗?

    我的页面上有 iframe iframe 和父页面位于不同的域中 父页面上的 javascript 代码可以访问此 iframe 内的元素吗 如果页面来自不同的域 则不应该这样做 浏览器安全沙箱应该阻止这种类型的访问 当两个页面来自不同的时
  • JavaScript 中的负数到二进制字符串

    任何人都知道为什么javascriptNumber toString https developer mozilla org en US docs JavaScript Reference Global Objects Number toS
  • 各种 Javascript 优化项目如何影响 DOM 性能?

    通过 Tracemonkey Squirrelfish 和 V8 项目 大量 C S 计算机科学融入了 Javascript 这些项目 或其他项目 是否解决了 DOM 操作的性能问题 或者它们纯粹与 Javascript 计算相关 纯 DO
  • 客户端 GitHub 身份验证

    我正在使用 Javascript 对 GitHub 进行基本身份验证 例如 以下 shell 命令从 Github 获取令牌 curl i u uaername password k d scopes repo https api gith
  • 计算两列中两个总和的平均值,并将其显示在 JQGrid 的下一列中

    I m using Jqgrid with summery row at grouping level Now I want to know one thing that Is it possible to show average cal
  • Bootstrap 页脚不在底部

    我试图强制我的页脚位于网站底部 我不希望它在滚动时粘住 只是在向下滚动网页时出现在底部 目前 网页显示时页脚位于内容下方 我添加了这样的代码bottom 0 并发现它粘住了并且不适合我的网站 我还添加了这样的代码html body heig
  • 将新数据添加到 d3 Streamgraph 时的转换

    我使用d3绘制了一个与官方示例非常相似的流图http bl ocks org mbostock 4060954 http bl ocks org mbostock 4060954 唯一的区别是我如何用新数据更新它 我不仅想要垂直 y 值 过
  • 禁用拉斐尔论文上的浏览器上下文菜单

    我有一篇拉斐尔论文定义为R1 Raphael 0 0 800 600 我想在本文中禁用上下文菜单 以便我可以捕获鼠标右键单击事件 我没有这样的Raphael someDiv 800 600 禁用 div 的 oncontextmenu 属性
  • 通过标记或JS强制下载

    假设我在 CDN 来自 Rackspace 的云文件 上有一个文件 以及一个包含该文件链接的静态 html 页面 有什么方法可以强制下载此文件 以防止它在浏览器中打开 例如 mp3 我们可以让我们的服务器读取该文件并将相应的标头设置为 he
  • 如何在 Chrome 中将 Set 转换为数组?

    如何将集合转换为数组 https stackoverflow com questions 20069828 how to convert set to array给出了将 Set 转换为 Array 的三个答案 目前在 Chrome 浏览器
  • 设置三个输入数字的最大值

    我有三个输入数字
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • 如何在 Google 地图上旋转叠加图像?

    我正在尝试将一系列叠加层放置到 Google 地图上 我正在跟随地面覆盖层的示例代码 https developers google com maps documentation javascript examples groundover
  • GraphQL 错误字段类型必须是输入类型,但得到:

    这是突变 const createNotebook mutationWithClientMutationId name CreateNotebook inputFields token type GraphQLString details
  • 在 Bootstrap 选择器上使用 jQuery 取消选择选项

    我对一些 UI 元素使用 Bootstrap SelectPicker 它允许用户选择多个选项并将其呈现在段落标签中的屏幕上 他们还应该能够删除选定的选项 这是我的代码 用于将选定的选项渲染到屏幕上 以便每个选项旁边都会显示一个 X 单击它
  • 重复 Pinterest Facebook 邀请功能

    I m trying to duplicate Pinterest s Invite Friends functionality In case you haven t seen what it looks like it looks li
  • LightningChart JS - LineSeries / Progressive X 的损坏

    我在使用 LightningChart 时遇到了一个有趣的问题 它似乎会破坏或以其他方式减少我的数据 具体取决于它与图表的 DateOrigin 的距离 我的数据是每秒 1000 个样本 我试图一次显示 1 2 周的数据 我正在使用 Cha
  • JavaScript 模板文字稍后替换变量(在知道值之前)

    是否可以在已知值之前以某种方式使用模板文字 JS 模板文字的每个演示都如下所示 var name John var s Hello name 但在现实世界中 模板是在我们知道变量值之前定义的 某处定义了模板 在页面加载时 var s Hel
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer

随机推荐

  • bmp图片显示函数【只显示800*480的情况】

    下面代码用于在6818开发板上显示800 480大小的bmp图片 说明 1 需提前准备好此规格的bmp图片 2 函数参数为提供的图片路径名 include
  • Saleae Logic打开出现Error Connecting to Socket

    在Saleae Logic官网安装Logic的最新版本后打开出现Error Connecting to Socket Logic官网下载链接 https www saleae com downloads 解决方法 手动安装Visual St
  • C++——构造函数(定义以及调用构造函数的过程)

    目录 一 构造函数 二 调用构造函数 重点 三 组合 四 类成员初始化的困惑 冒号语法 成员初始化列表 一 构造函数 1 定义对象的时候 自动调用当前类的构造函数 如果程序员没有定义构造函数 则类会提供一个默认的构造函数 给类中的数据成员分
  • FPGA学习笔记-1 FPGA原理与开发流程

    1 初识FPGA 文章目录 1 初识FPGA 1 1 基本认知 1 1 1 什么是FPGA 1 1 2 什么是HDL 什么是Verilog 1 1 3 硬件开发与软件开发 1 1 4 FPGA与其他硬件的对比 1 1 5 FPGA优势与局限
  • 从Java到Go:构建游戏服务器后端

    目录 第一部分 游戏服务器后端概述 第二部分 创建网络连接 第三部分 处理游戏逻辑
  • RSYNC配置

    服务端 1 修改配置文件 测试时 修改配置文件中path参数 无需重启服务可以直接生效 vim etc rsyncd conf uid root 设置运行rsync 进程的用户 gid root use chroot yes max con
  • XSS闯关——第一关:level1

    第一关 level1 这里的payload为4 查看地址栏与之对应的传参为test 页面没有输入的地方 所以可以直接在地址框注入JavaScript脚本 回车过关
  • SmartBi没有数据时隐藏电子表格报表

    示例说明 电子表格报表中在非数据扩展区域添加了静态文字 当报表没有数据时看起来很不美观 则需要隐藏报表中的表格 如下 1 有数据时 2 没数据时 3 使用宏代码判断没有数据 隐藏表格 效果如下 版本及客户端说明 1 smartbi版本 V5
  • python多线程是如何工作

    一 进程 线程 协程的相关概念 1 进程 线程 协程定义 1 进程是系统进行资源分配和调度的独立单位 2 线程是进程的实体 是CPU调度和分派的基本单位 3 协程也是线程 称微线程 自带CPU上下文 是比线程更小的执行单元 2 进程和线程的
  • 前端实习面试常考

    前端实习面试常考 持续更新中 计网 1 TCP IP四层 2 TCP UDP区别 使用场景 3 TCP三握手 四次挥手 4 输入url到界面呈现发生什么 5 HTTP2 0特性 6 HTTP HTTPS 7 localStorage ses
  • 期货反向跟单的六大境界

    五年前那会刚迈进反向跟单 现在回想起来 发觉我们当时很天真 有激情 有梦想 有活力 有野心 胸腔中充满了赤裸裸的欲望 疯狂是一件很可怕的事情 然而比疯狂更恐怖的地方在于我们身处其中而不自知 反向的第一层境界 荷尔蒙爆发 反向没出现之前 但凡
  • 问一下ChatGPT:DIKW金字塔模型

    经常看到这张DIKW金字塔模型图 还看到感觉有点过份解读的图 后面又加上了insight impact等内容 Data 是数据 零散的 无规则的呈现到人们眼前 如果你只看到这些数字 如果没有强大的知识背景 可能就是看到一些数字或符号而已 比
  • QT中资源文件resourcefile的使用,使用API完成页面布局

    QT中资源文件resourcefile的使用 之前添加图标的方法 使用资源文件的方法 创建资源文件 资源文件添加前缀 资源文件添加资源 使用资源文件中的资源 使用API完成布局 使用QHBoxLayout完成水平布局 使用QVBoxLayo
  • Latex单行/多行公式居中/左对齐

    一 单行公式居中 代码如下 示例 begin equation label eq1 y kx b end equation 输出 二 单行公式左对齐 代码如下 示例 begin flalign label eq2 y kx b end fl
  • js数组常用的方法

    js数组的相关语法 一 数组的声明 1 标准式写法 2 白话式写法 二 数组的赋值 1 在建立数组的时候直接赋值 2 根据键值进行赋值 三 数组的取值 四 concat 数组拼接方法 五 join 数组转化为字符串 六 reverse 数组
  • jenkins安装pmd对代码进行静态分析

    1 在Jenkins的插件管理中 安装PMD Plugin插件 2 在被编译的代码中 增加如下配置 1 顶级pom中 在dependencyManagement中增加对PMD插件的依赖
  • 类的构造函数,拷贝构造函数

    C Primer 类的构造函数 拷贝构造函数 在说这些内容之前 先说以下几个内容 内置类型 算术类型 整型 字符 布尔型 浮点型 和空类型 空类型不对应具体的值 仅用于一些特殊的场合 1 初始化 当对象再创建时获得了一个特定的值 我们说这个
  • linux文本处理常用命令,Linux文本处理常用命令

    Linux文本处理常用命令 grep sed printf awk cut sort 1 grep 按行查找字符 输出包含字符的行 用法grep key test txt cat test txt grep key 参数含义及示例 n输出结
  • 常用测试平台

    目录 测试用例管理 bug管理平台 代码管理平台 持续集成管理平台 流程管理平台 1 测试用例管理 jira 推荐方案 定制性很强 redmine 推荐方案 开源 活跃 定制性很强 testlink 流行的测试用例管理平台 体验不太好 其他
  • 每日一题面试题 - 持续更新

    周一到周五更新 1 undefined和null的区别 20230614 undefined 1 声明了一个变量 但没有赋值 2 对象属性没有赋值 3 调用函数没有提供相应的参数 4 函数没有返回值 默认undefined 5 undefi