2022-11-23大厂面经00

题目

  1. 聊项目
  2. 说一下useState什么时候同步什么时候异步,为什么?原理是啥?
  3. 说一下react class和hooks的优缺点
  4. 说一下react fiber
  5. 说一下 proxy和object.defineProperty()的区别
  6. 手写一个new函数
  7. 手写flat函数,多种方法
  8. 一个promise的题目,涉及setTimeout(宏微任务)
  9. 做过性能优化方面的吗,有哪些
  10. 性能优化有哪些指标,平时自己怎么看性能
  11. react中有哪些避免重复渲染的方法
  12. css 回流和重绘的过程,哪些属性会导致他们产生
  13. React事件合并了解吗
  14. H5 如何做响应式布局
  15. Rem的原理是什么
  16. 网页最小字体12px,如何实现10px
  17. 缩放过的元素的相对位置会改变吗?
  18. https和http的区别,使用什么加密方式
2022-11-23大厂面经00

题目分享

  1. 八股文(原型链、类型判断)
  2. useState和useReducer的区别
  3. react中的性能优化有哪些
  4. 发版本的时候 ^和~有什么区别
  5. 包的版本怎么做差异化管理
  6. 自己如何实现一个埋点机制
  7. 如何区分是否为原型属性
  8. props和state的区别,props可以改变吗
  9. 如何减少渲染
  10. 通信的全部方式有哪些,有什么区别
  11. 深拷贝和浅拷贝怎么实现
  12. json.stringfy实现深拷贝的原理是什么
  13. 深拷贝的时候相互依赖,如何解决
  14. useState和setState有啥区别,为什么要使用useState
2022-10-18Web300

Hardhat Setup - Smart Contract Lottery

创建空项目

yarn add hardhat --dev
yarn hardhat 
// 选择empty hardhat.config.js

image.png

安装依赖

yarn add --dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers @nomiclabs/hardhat-etherscan @nomiclabs/hardhat-waffle chai ethereum-waffle hardhat hardhat-contract-sizer hardhat-deploy hardhat-gas-reporter prettier prettier-plugin-solidity solhint solidity-coverage dotenv
2022-10-17Web300

tasks

编写的tasks可以很方便的在终端中进行调用

const { task } = require("hardhat/config");

task("block-number", "Prints the current block number.").setAction(
  async (taskArgs, hre) => {
    const blockNumber = await hre.ethers.provider.getBlockNumber();
    console.log(`Current block Number is ${blockNumber}`);
  }
);

以上task实现了查看block-number,第一个参数为task的名称,第二个参数为描述,setAction用来描述真正这个task要实现的功能。

运行tasks

image.png

2022-10-17Web300

使用hardhat-etherscan

链接地址:https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-etherscan

This plugin helps you verify the source code for your Solidity contracts on Etherscan

安装依赖

npm install --save-dev @nomiclabs/hardhat-etherscan

修改hardhat.config.js

require("@nomiclabs/hardhat-etherscan");

const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY

etherscan: {
    apiKey: ETHERSCAN_API_KEY,
},