首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【愚公系列】2023年03月 其他-Web前端基础面试题(react专项_35道)

10、为什么不直接更新state状态 11、React中的这三个点(...)是做什么的 12、简单介绍下react hooks 产生的背景及 hooks的优点 13、 React hooks 怎么模拟生命周期...29、使用箭头函数(arrow functions)的优点是什么 30、为什么建议传递给 setState 的参数是一个 callback 而不是一个对象 31、 (在构造函数中)调用 **super(...如果发现在不同的地方写了大量代码来做同一件事时,就可以用 HOC 5、为什么建议传递给 setState 的参数是一个 callback 而不是一个对象 因为 this.props 和 this.state...:useReducer是用来弥补useState的补不足, 可以把数据进行集中式的管理,单独处理数据的逻辑信息 21、为什么浏览器无法阅读JSX?...它们将不同浏览器的行为合并到一个API中。 这样做是为了确保事件在不同的浏览器之间显示一致的属性。

7.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java面试题库及答案解析

    方法重载发生在同一个类里面,两个或者是多个方法的方法名相同但是参数列表不同。 9、Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数? 当新对象被创建的时候,构造函数会被调用。...每一个构造函数必须有它自己唯一的参数列表。 Java不支持像C++那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java不会创建默认的复制构造函数。...同步块会有一个锁定的“对象”。同步代码块的同步范围更加准确。 17、在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步? 监视器和锁在Java虚拟机中是一起使用的。...如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认为是相等的。而且,这两个方法也用来发现重复元素。...compare()方法用来给两个输入参数排序,返回负数,0,正数表明第一个参数是小于,等于,大于第二个参数。equals()方法需要一个对象作为参数,它用来决定输入参数是否和Comparator相等。

    1.2K50

    京东用来解决热key问题的JD-hotkey框架有多牛逼?无需质疑,战绩可查!

    先说说这个框架是干什么的吧。我们可以设想这样一个场景:在购物网站中我们可能会用redis来存一些排行榜上的商品。...接下来我们继续看一看在这个框架中一些比较重要的源码,看懂他们将有利于你更加熟练的掌握这个框架: Worker端: 当一个worker启动之后,就会开启很多监听器来监听dashboard中的各种配置。...这个类是用来存储各个app的rule信息的一个类,那为什么对rule进行更改只是需要将其放到KeyRuleHolder中呢? 不看源码,先推测。...除此之外,worker最核心的 基于滑动窗口统计热key 相关代码 也要看一下 当我们尝试构造一个滑动窗口类的时候,会触发它的默认构造方法: 上面这段代码其实就是在构造滑动窗口长度。...那么既然是间隔和worker交互的,client端就一定会有一个设计来临时存储需要发送给worker的key和数量统计。

    43010

    C++初阶 类和对象(下)

    拷贝构造函数只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。 1.2 为什么得是引用?...类型的变量,那么它也会走向这个拷贝构造函数,于是拷贝构造函数调用拷贝构造函数,再调用拷贝构造函数....... 1.3 使用拷贝构造函数 简单的拷贝并打印一下,代码什么的自己去敲一遍效果好一些,别光看...,至于为什么要加const是因为我们传递过去的变量是被拷贝的,是不会被修改的 加个const是为了避免一些低级错误的发生,比方说修改到了被拷贝的对象,同时增加了代码的可读性。...1.4 拷贝构造函数有什么用? 学到这里,大家恐怕也是明白了,拷贝构造函数就是简单地将目标内容拷贝给新定义的对象罢了, 那么它有用吗,这是很多初学者的疑惑,实际上它不仅仅是有用,它是很有用。...祖师爷也是这么做的,他规定前置++和后置++的区别就在于,后置++的参数有个int型的 什么意思?

    16310

    一劳永逸地搞懂 JavaScript中‘this’

    这不仅仅是为了弄清楚一个关键字;它是为了打开通往高级编码技巧和模式的大门。 为什么我们应该关心“this”? 普遍性:就像你无法逃避的流行曲调, this 在JavaScript中随处可见。...在浏览器中: 如果你在浏览器中运行你的 JavaScript 代码(像我们大多数人经常做的那样),全局上下文中的this指的是window对象。这是因为,在浏览器中,window 对象就是全局对象。...这都是关于你来自哪里的 你知道在生活中,我们中的一些人根据我们所在的地方和我们与谁在一起会戴不同的帽子吗?常规函数也做类似的事情与 this。...在这个魔法的核心是我们的好朋友:this。 主要吸引力:事件监听器 当你将一个事件监听器绑定到一个DOM元素时,你基本上是在耳语指示,告诉它,“嘿,当有人与你互动时,做这件事。”...基础:构造函数 在其核心,构造函数只是一个函数。但它是一个有抱负的函数。它梦想着创建多个对象,每个对象都是根据其框架塑造的,但持有自己的一套值。

    14310

    数据挖掘10大算法详细介绍

    1.C4.5算法 C4.5是做什么的?C4.5 以决策树的形式构建了一个分类器。为了做到这一点,需要给定 C4.5 表达内容已分类的数据集合。 等下,什么是分类器呢?...分类器是很棒的东西,但也请看看下一个聚类算法…. 2. k 均值聚类算法 它是做什么的呢?K-聚类算法从一个目标集中创建多个组,每个组的成员都是比较相似的。...PageRank常用来发现一个网页的重要度关联度,通常被认为是一种非监督学习算法。 为什么使用PageRank?...你会喜欢下面的算法的… 8.kNN:k最近邻算法 它是做什么的?...为了构造分类和回归树模型,需要给它提供被分类好的训练数据集,因此 CART 是个监督学习算法。 为什么要使用 CART 呢?

    2K40

    java50道基础面试题

    Java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。...15.在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步? 监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保一次只有一个线程执行同步代码块。...如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认为是相等的。而且,这两个方法也用来发现重复元素。...compare()方法用来给两个输入参数排序,返回负数,0,正数表明第一个参数是小于,等于,大于第二个参数。equals()方法需要一个对象作为参数,它用来决定输入参数是否和comparator相等。...相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。这里有Java异常处理的一些小建议。 44.Java中Exception和Error有什么区别?

    63670

    小前端读源码 - React16.7.0(一)

    首先会初始化一些列的变量,之后会判断我们传入的元素中是否带有key和ref的属性,这两个属性对于react是有特殊意义的,如果检测到有传入key,ref,__self和__source这4个属性值,会将其保存起来...之后对传入的config做处理,循环config对象,并且剔除掉4个内置属性值(key,ref,__self,__source),之后重新组装新的config为props。...两个函数是干什么的?...问题1:defineKeyPropWarningGetter和defineRefPropWarningGetter两个函数是干什么的呢,首先我们知道key是可以优化React的渲染速度的,ref是可以获取到...---- 补充知识 在阅读源码的时候会有一些平常比较少用的API,这里也做一些记录。 Symbol Symbol是ES6新出的一个新的数据类型,返回的值是唯一属性标识。

    43640

    HashMap的初始化,到底都做了什么?

    刘志航 1、HashMap初始化参数都是什么?默认是多少? 2、为什么建议初始化设置容量? 3、tableSizeFor方法是做什么的? 4、如何获取到一个key的hash值?及计算下标?...1 HashMap初始化参数? HashMap初始化参数分别是初始容量和负载因子。 初始容量(threshold):默认16,必须是2的幂,最大容量为 1 的扩容,在《阿里巴巴Java开发手册》中已经说明了原因。主要是为了减少频繁的扩容造成的资源损耗。 3 tableSizeFor方法是做什么的?...通过图可以看出: 参与运算的只有低x位,相当于之前的所有值都不会有效。 所以前面的hash(key) 将key.hashCode()高低16位做^操作,可以保证,高低16位都能参与运算。...一定程度上避免hash碰撞.在源码注释中已经说明,是肯定会有碰撞,但是这是权衡之后的结果。 - -

    53140

    Javascript装饰器的妙用

    为什么要用装饰器 可能有些时候,我们会对传入参数的类型判断、对返回值的排序、过滤,对函数添加节流、防抖或其他的功能性代码,基于多个类的继承,各种各样的与函数逻辑本身无关的、重复性的代码。...函数接收一个参数: constructor 之前的构造函数 我们可以针对原有的构造函数进行一些改造: 新增一些属性 如果想要新增一些属性之类的,有两种方案可以选择: 创建一个新的class继承自原有class...关于这类装饰器,会接收如下三个参数: 如果装饰器挂载于静态成员上,则会返回构造函数,如果挂载于实例成员上则会返回类的原型 装饰器挂载的成员名称 成员的描述符,也就是Object.getOwnPropertyDescriptor...一个不存在的属性是不会有descriptor的,所以这就是为什么TS在针对Property Decorator不传递第三个参数的原因,至于为什么静态成员也没有传递descriptor,目前没有找到合理的解释...函数参数装饰器会接收三个参数: 类似上述的操作,类的原型或者类的构造函数 参数所处的函数名称 参数在函数中形参中的位置(函数签名中的第几个参数) 一个简单的示例,我们可以结合着函数装饰器来完成对函数参数的类型转换

    1.1K10

    剖析依赖属性

    第一参数是指定依赖属性的包装器名称是什么(包装器就是用来包装依赖属性的,通过一个属性来包装依赖属性供外部使用,具体下文会讲,此处先做了解) 第二个参数是指定依赖属性要存储的值的类型是什么 第三个参数是指定依赖属性属于哪个类的...方法体里边,前几行实际上是一些验证代码,当参数有误时,会抛出异常。...FromNameKey是Dependency类的一个内部类,它构造器需要传入的包装器名称和依赖对象所在的类的Type, 这个类及构造器代码如下: 构造器第三行代码比较重要,我们可以看到,...,发现它是个全局的HashTable: 那这个代码块的意思就明了了,目的就是判断生成的Key是否已存在,如果存在,就抛异常,从这里就控制了,在类内部定义两个相同包装器名称的依赖属性是不允许的,实际上也必须是这样...判断能否找到入口,如果没有入口,则新建一个入口对象,将值放进去,有入口则更新值 最后,通过UpdateEffectiveValue方法对依赖属性的值做一些处理 至此依赖属性的读取流程解析完毕

    47020

    Android面试题集

    Looper:消息循环器,主要用来把消息分发给相应的处理者。 Handler:消息处理器,主要向消息队列发送各种消息以及处理各种消息。...Android Binder机制是做什么的,为什么选用Binder,原理了解吗?...Android Binder是用来做进程通信的,Android的各个应用以及系统服务都运行在独立的进程中,它们的通信都依赖于Binder。...这跟LinkedHashMap的特性有关,LinkedHashMap的构造函数里有个布尔参数accessOrder,当它为true时,LinkedHashMap会以访问顺序为序排列元素,否则以插入顺序为序排序元素...CLEAN的后面还记录了文件的长度,注意可能会一个key对应多个文件,那么就会有多个数字。 PathClassLoader与DexClassLoader有什么区别?

    86310

    前端一面react面试题总结

    HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组件的函数。...KeyLength 用来设置 Location.Key 的长度。...(1)constructor组件的构造函数,第一个被执行,若没有显式定义它,会有一个默认的构造函数,但是若显式定义了构造函数,我们必须在构造函数中执行 super(props),否则无法在构造函数中拿到...一些操作如果依赖获取到 DOM 节点信息,我们就会放在这个阶段来做。此外,这还是 React 官方推荐的发起 ajax 请求的时机。...React Hooks 的限制主要有两条:不要在循环、条件或嵌套函数中调用 Hook;在 React 的函数组件中调用 Hook。那为什么会有这样的限制呢?

    2.9K30

    SharedPreferences还能再优化吗?

    ,在之前的工作经历中做过一些什么优化。...我回答对SP做过一些优化,减少了一些ANR的产生,具体的做法是,在sp.putXX或getXX之前加一个另外的HashMap来做为缓冲层,但是为什么要这样做,我没有绝对的把握。...OK,上面的代码最终new了一个SharedPreferencesImpl对象,new对象先走构造,我们来看下SharedPreferencesImpl 的构造方法干了什么。...重点说下CountDownLatch这个类和commit方法中的CountDownLatch.wait(); CountDownLatch网上找了下资料,这是java1.5封装的一个计数器线程锁。...apply中awaitCommit是干什么的 最后看下这个awaitCommit 是干什么的,简单点说,是为了保证本次apply操作一定会被执行一次。 为什么这么说。

    66510

    设计模式之装饰器模式

    、Mybatis的运用来加强我们的理解,第四部分说明装饰器模式和代理模式的区别及他们各自的应用场景。...经过组合模式以后老王的书被管理的井井有条,但是随着书的增多,老王就有一些忙不过来了,老王就想让小王帮他处理一些额外的事,比如在买书之前打扫一下书房,在晚上的时候把书房的门锁一下;或者有人借书之前做一下记录...这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。...基础不太扎实的读者可能会有一个疑问,在Java的类中默认不是会有一个无参的构造方法吗?为什么这里还需要定义呢?在java中一个类只要有父类,那么在它实例化的时候,一定是从顶级的父类开始创建。...但我们看代理模式中我们列举的例子是以租房做例子,中介将房子的权利完全移交过去,中介完全控制房子做一些改造,今天书房的需求只是让小王来帮忙的,还是以老王为主体,小王只是做一些附加。

    23120

    优秀的Java程序员必须掌握的8项代码编程技巧!

    Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在。 有超过30亿的设备是运行在Java之上的。...但是,有多少次,看到2周前写的代码,你都记不起它是干什么的? 你很幸运,那些未注释的代码是你自己写的,你脑海中还会有残存的印象。非常不幸,大多时候,代码是别人写的,并且那个人很可能已经离开公司了。...一个最成功的、也是被广泛使用的例子是Struts框架,这个开源的web框架是建立web系统的极佳选择,不要试图构造你自己的Struts版本,会累死的。...如果你是一位不幸被指派做界面开发的Java程序员,你要遵循下面3条规则: 8、所有的变量和参数都用final声明 就像我说的。我不相信自己不会无意间重写了某个值。这么说来,我的确一点都不相信自己。...因为: 这也是为什么所有的变量和参数都用final声明的原因。 当然,这些技巧对于有一些Java基础的人来说是非常有用的,对于0基础的朋友,还是要从最基础的学起,一步一个脚印跨越Java的高峰。

    94100
    领券