一些八股文 这个是我面试银行外包的一些题目 , 也记录了一下, 随便当做学学的
nodejs 版本: lts current
网页中的图像通常可以单独保存 HTML 本身并不直接支持描述图像的像素 图像可以作为超链接的起始对象吗 HTML 可以描述位置大小
isNaN是 JavaScript 中一个用来判断一个值是否是“非数字”**等额本金:月还款金额递减,每月还款本金保持不变,利息逐月递减
- 等额本息:月还款金额保持不变,每月还款本金逐月递增,利息逐月递减
CSS Sprites:减少 http 请求 2.提高加载速度 3.减少图片大小 缺点: 每个状态一个图
const a = {} const b = {key:'b'} const c = {key:'c'} a[b] =123 a[c] = 456 console.log(a[b]) 会设置成字符串 a{ [ob,ob]: } 所以是456React 组件 prop-types 所有类型后可以跟isRequired修饰符代表该属性是必传属性
var num =10 function cls(){ this.num = 0 return { num:100, getNum:()=>{ console.log(this.num) }, getNum2:()=>{ console.log(this.num) }, } } const o = new cls() o.getNum() o.getNum2() 箭头函数 getNum 和 getNum2 是在 cls 函数的上下文中定义的,因此它们会捕获 cls 函数中的 this 值 返回 0 0继承不会修改实例的值, 只会修改自己的实例 class cls2 { constructor(){ this.num = 111 function getNum(){ console.log(937) } } } class son extends cls2{} const p2 = new son() const p1 = new cls2() p2.__proto__.__proto__.num = 222 p2.__proto__.__proto__.getNum = function (){ console.log(130) } 接下来,p2.__proto__.__proto__.num = 222; 这行代码修改了 son 类的原型链上的 num 属性,这个原型链实际上是 cls2 的原型。但是,这个修改不会影响 p1 实例,因为 p1 实例的 num 属性是在它自己的实例上设置的。 console.log(p1.num) // 111 p2.getNum() //120"合并两行"这个单元格将会横跨第一行和第二行,因为它设置了rowspan="2"。 "合并两列"这个单元格将会横跨第二行的第二列和第三列,因为它设置了colspan="2"current 是当前发布的最新版本 ,增加了特性 V8 引擎的更新、HTTP 解析速度的提升、启动速度的大幅提升、更好的诊断报告和堆分析工具以及 ESM 模块的更新。此外,V8 更新到 7.4 版本,带来了异步堆栈跟踪、参数调用不匹配时的调用速度优化、更快的 await、更快的 JavaScript 解析速度等特性
Reactrouter
在React Router中, indexRedirect 是一个路由配置属性,它用于在访问一个路由的根路径时自动重定向到另一个路由。这个属性通常用在<Route>组件中,当用户访问一个特定的路径,但你想自动将他们重定向到另一个路径时,indexRedirect 就非常有用。 Redirect当用户尝试访问一个不再存在的页面时,将其重定向到一个默认页面。 在用户完成某个操作后,将其重定向到另一个页面。 根据应用程序的逻辑,将用户从一个路径重定向到另一个路径 link <Route exact path="/"> 指定了当路径为根路径(即 /)时应该渲染的组件。exact 属性确保只有当路径完全匹配时才会渲染这个组件。double click 双击左键 context click 鼠标右键
function fn(o,val){ o.b = 1 val=1 } var obj = {b:0} var num = 0 fn(obj,num) console.log(obj,num) 引用数据类型和基本数据类型 { b: 1 } 0
# 命令行工具
- cmd cmder bash git bash
- Git Bash:
- Git Bash 是 Git for Windows 提供的一个命令行工具,它模拟了一个 Unix-like 的环境,允许用户在 Windows 系统上使用 Git 命令以及大多数常见的 Unix 命令行工具。
- CMD (Command Prompt):
- CMD 是 Windows 操作系统中的一个命令行解释器,它允许用户通过命令行执行各种操作,如管理文件、运行程序等。
- CMDE (Command Prompt with Cmder):
- CMDE 通常指的是 Cmder,它是一个增强版的命令行界面,基于 ConEmu,提供了许多改进,如更好的多标签支持、自定义主题、更强大的命令行功能等。
- Bash (Bourne Again SHell):
- Bash 是 Unix 和类 Unix 系统中最常用的命令行 shell。它是一个命令处理器,通常作为交互式登录 shell 和命令行界面来使用
# 微信小程序
wx.getStorage方法用于从本地缓存中异步 获取 指定 key 的内容wx.setStorage` 指定 key 异步缓存
wx.removeStorage` 异步移除本地 key
以下是一些节点过多可能导致的性能问题:
- 渲染延迟:小程序的渲染引擎需要处理更多的节点,这可能会导致页面渲染速度变慢,特别是在低性能的设备上。
- 内存占用:每个节点都会占用一定的内存,节点过多会导致内存占用增加,这可能会导致小程序运行缓慢或者在某些情况下崩溃。
- 交互响应慢:如果页面上有大量的节点,用户与页面的交互(如点击、滑动等)可能会变得不够流畅。
- 数据更新开销大:当使用小程序的数据绑定功能时,如果数据变化需要更新大量的节点,那么这个更新过程可能会非常耗时。
为了提高小程序的性能,可以采取以下措施:
- 优化节点结构:尽量减少不必要的节点,合并可以合并的节点。
- 使用虚拟列表:对于长列表数据,可以使用虚拟列表来仅渲染可视区域内的节点。
- 懒加载:对于不在视窗内的内容,可以使用懒加载的方式,当它们即将进入视窗时再进行渲染。
- 分页加载:对于大量数据,可以采用分页加载的方式,一次只加载一部分数据。
- 减少数据绑定:减少不必要的双向数据绑定,使用事件监听和手动更新 DOM 来减少性能开销。
在微信小程序中,不能直接使用 HTML 中的
<script>标签来嵌入 JavaScript 代码,因为微信小程序的框架不基于 HTML,而是使用 WXML(WeiXin Markup Language)来定义页面结构。WXML 是一种类似于 XML 的标记语言,专门用于描述微信小程序的页面结构。
# this 的指向
- 函数作为对象的一个方法被调用时,
this关键字通常指向调用该方法的对象 - 当使用
new关键字在 JavaScript 中实例化一个对象时,this关键字在构造函数内部会指向新创建的对象实例 - 全局范围内 ,this 指向全局对象, 浏览器中指向 window
- 全局函数取决于严格模式
- 在非严格模式下,全局函数调用时
this指向全局对象。 - 在严格模式下,全局函数调用时
this是undefined
- 在非严格模式下,全局函数调用时
# hive
Hive 是一个建立在 Hadoop 之上的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,从而允许用户对存储在 Hadoop 集群中的大规模数据进行查询和分析。Hive 是由 Facebook 开发,并且后来成为 Apache 软件基金会的一部分。
- Hive 支持多种客户端连接方式
- Hive 本身并不是为实时计算设计的
- 有外部表 ,内部表, 分区 表 ,桶表
# css
html 中盒子模型元素实际占位的高度:
- 内容高度(Content Height):
- 这是元素内容的高度,不包括任何边框、内边距或外边距。
- 如果元素包含文本,则内容高度至少是文本行的高度;如果包含图片,则是图片的高度。
- 内边距(Padding):
- 内边距是内容周围的空白区域,位于内容和边框之间。
- 内边距可以分别设置顶部、右侧、底部和左侧的值。
- 内边距的大小会被加到内容高度上。
- 边框(Border):
- 边框位于内边距的外围,包围着元素的内容和内边距。
- 边框的宽度也会被加到元素的总高度上。
- 外边距(Margin):
- 外边距是元素边框外的空白区域,用于控制元素之间的距离。
- 虽然外边距是元素占位的一部分,但它不被包含在元素的实际高度内,因为它是指元素与其他元素之间的空间。
# react
- react 生命周期组件包括实例化运行态和销毁
- react16 提供的 componentDidcatch 方法可以捕获构造函数 , 渲染和生命周期的异常
- 通常不推荐在
render函数中直接调用this.setState,因为这可能会导致以下问题 - 性能问题和逻辑错误
# META 标签中 httpqeuiv 的取值有哪些
content-type用来指定文档的字符集和内容类型,例如:
html
复制
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
content-language指定页面的语言,例如:
html
复制
<meta http-equiv="content-language" content="en-US">
expires指定网页过期时间,浏览器可以据此决定是否从缓存中加载页面,例如:
html
复制
<meta http-equiv="expires" content="Wed, 20 Jan 2021 08:00:00 GMT">
refresh用于指定页面在一定时间后自动刷新或重定向到另一个 URL,例如:
html
复制
<meta http-equiv="refresh" content="5; url=https://www.example.com">
set-cookie- 用于设置 cookie,但这个用法并不常见,通常由服务器通过 HTTP 响应头设置。
pragma用于控制缓存的行为,例如:
html
复制
<meta http-equiv="pragma" content="no-cache">
cache-control控制文档的缓存机制,例如:
html
复制
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
X-UA-Compatible告诉浏览器以何种版本来渲染页面,例如:
html
复制
<meta http-equiv="X-UA-Compatible" content="IE=edge">
viewport用于控制页面在移动设备上的布局,虽然它不是官方的 HTTP 头部字段,但在移动设备上很常见,例如:
html
复制
<meta http-equiv="viewport" content="width=device-width, initial-scale=1.0">
请注意,随着 HTML5 和相关 Web 标准的发展,某些 http-equiv 的使用已经逐渐被新的 HTML 特性和 CSS 替代。例如,viewport 通常使用 <meta name="viewport"> 来定义,而不是 http-equiv。