一些八股文 这个是我面试银行外包的一些题目 , 也记录了一下, 随便当做学学的

  • 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]:
    }
    所以是456
    
  • React 组件 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
  1. Git Bash:
    • Git Bash 是 Git for Windows 提供的一个命令行工具,它模拟了一个 Unix-like 的环境,允许用户在 Windows 系统上使用 Git 命令以及大多数常见的 Unix 命令行工具。
  2. CMD (Command Prompt):
    • CMD 是 Windows 操作系统中的一个命令行解释器,它允许用户通过命令行执行各种操作,如管理文件、运行程序等。
  3. CMDE (Command Prompt with Cmder):
    • CMDE 通常指的是 Cmder,它是一个增强版的命令行界面,基于 ConEmu,提供了许多改进,如更好的多标签支持、自定义主题、更强大的命令行功能等。
  4. Bash (Bourne Again SHell):
    • Bash 是 Unix 和类 Unix 系统中最常用的命令行 shell。它是一个命令处理器,通常作为交互式登录 shell 和命令行界面来使用

# 微信小程序

  • wx.getStorage 方法用于从本地缓存中异步 获取 指定 key 的内容

  • wx.setStorage` 指定 key 异步缓存

  • wx.removeStorage` 异步移除本地 key

  • 以下是一些节点过多可能导致的性能问题:

    1. 渲染延迟:小程序的渲染引擎需要处理更多的节点,这可能会导致页面渲染速度变慢,特别是在低性能的设备上。
    2. 内存占用:每个节点都会占用一定的内存,节点过多会导致内存占用增加,这可能会导致小程序运行缓慢或者在某些情况下崩溃。
    3. 交互响应慢:如果页面上有大量的节点,用户与页面的交互(如点击、滑动等)可能会变得不够流畅。
    4. 数据更新开销大:当使用小程序的数据绑定功能时,如果数据变化需要更新大量的节点,那么这个更新过程可能会非常耗时。

    为了提高小程序的性能,可以采取以下措施:

    • 优化节点结构:尽量减少不必要的节点,合并可以合并的节点。
    • 使用虚拟列表:对于长列表数据,可以使用虚拟列表来仅渲染可视区域内的节点。
    • 懒加载:对于不在视窗内的内容,可以使用懒加载的方式,当它们即将进入视窗时再进行渲染。
    • 分页加载:对于大量数据,可以采用分页加载的方式,一次只加载一部分数据。
    • 减少数据绑定:减少不必要的双向数据绑定,使用事件监听和手动更新 DOM 来减少性能开销。
  • 在微信小程序中,不能直接使用 HTML 中的 <script> 标签来嵌入 JavaScript 代码,因为微信小程序的框架不基于 HTML,而是使用 WXML(WeiXin Markup Language)来定义页面结构。WXML 是一种类似于 XML 的标记语言,专门用于描述微信小程序的页面结构。

# this 的指向

  • 函数作为对象的一个方法被调用时,this关键字通常指向调用该方法的对象
  • 当使用 new 关键字在 JavaScript 中实例化一个对象时,this 关键字在构造函数内部会指向新创建的对象实例
  • 全局范围内 ,this 指向全局对象, 浏览器中指向 window
  • 全局函数取决于严格模式
    • 在非严格模式下,全局函数调用时 this 指向全局对象。
    • 在严格模式下,全局函数调用时 thisundefined

# hive

Hive 是一个建立在 Hadoop 之上的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,从而允许用户对存储在 Hadoop 集群中的大规模数据进行查询和分析。Hive 是由 Facebook 开发,并且后来成为 Apache 软件基金会的一部分。

  • Hive 支持多种客户端连接方式
  • Hive 本身并不是为实时计算设计的
  • 有外部表 ,内部表, 分区 表 ,桶表

# css

html 中盒子模型元素实际占位的高度:

  1. 内容高度(Content Height)
    • 这是元素内容的高度,不包括任何边框、内边距或外边距。
    • 如果元素包含文本,则内容高度至少是文本行的高度;如果包含图片,则是图片的高度。
  2. 内边距(Padding)
    • 内边距是内容周围的空白区域,位于内容和边框之间。
    • 内边距可以分别设置顶部、右侧、底部和左侧的值。
    • 内边距的大小会被加到内容高度上。
  3. 边框(Border)
    • 边框位于内边距的外围,包围着元素的内容和内边距。
    • 边框的宽度也会被加到元素的总高度上。
  4. 外边距(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