携程前端暑期实习一二HR面经 已offer

一面

一面聊了一个多小时吧,面试官问的也比较深,主要问题集中在React和工程化,基本没有问三件套的东西。
  1. 函数式组件和类式组件的区别,好在哪里?
    答:更好的逻辑复用,可以在外部自定义hooks;清爽的代码风格,高度聚合;不需要担心 this 的指向;更容易拆分组件。
  2. package.json中有什么?
    答:项目名和项目版本、script字段、dependencies字段、devDependencies、browserlist字段
  3. devDependencies和dependencies的区别,里面那个~,^,*分别表示什么意义?
  4. 虚拟dom的优势。(可以跨端)
  5. 了解 React.fibre 底层数据结构吗?
  6. React hooks 的底层数据结构,在之前 return 会报错吗?
  7. React redux的传递。
  8. useEffect的第二个参数,执行时机,第一个函数参数中的return作用。
  9. 怎么做到子组件更新不影响父组件,父组件更新不影响子组件。 答:useCallback() + React.memo()
  10. 怎么做到嵌套组件中只有其中一个组件渲染,其他组件不渲染。 答:useContext()
  11. script脚本怎么执行的
  12. 事件循环中微任务又产生了一个微任务,会在当前事件循环中执行吗?答:会
  13. 讲一下webpack打包,loader和plugins的作用
  14. 请求有几种方式,分别是什么
  15. 手写题:let data = await myFetch(url, param),如果url和param不变,就返回之前的结果。
    答:使用map,key为url + JSON.stringify(param),value为axios.post(url,param)的结果,如果key不变,直接返回value,变了就更新后再返回。

二面

10分钟,自我介绍+项目描述后直接进入反问环节,面试官全程不感兴趣的样子,最后反问阶段,面试官说的还挺多。

HR面

问题都比较尖锐吧,步步紧逼的那种,问了手上有什么offer,说明后天给结果,许愿oc,求求了!

更新:状态变成 测评/笔试中 了,希望能拿到offer啊!!!
更新: OC了
更新:发offer了
#携程#
#携程暑期实习##携程#
全部评论
不一定吧,我二面的时候也,感觉有压力内味了
点赞 回复 分享
发布于 2022-05-21 09:23
lz  offer了吗?
点赞 回复 分享
发布于 2022-05-25 19:35
恭喜楼主,咱们一面可能是同一个面试官,题目非常类似
点赞 回复 分享
发布于 2022-05-28 13:55
楼主二面和我一模一样,我也是10分钟结束,感觉面试官兴趣不大,感觉被kpi了。以为凉了,结果没凉😅😅😅
点赞 回复 分享
发布于 2022-05-28 17:18
想问一下携程实习薪资是多少哇
点赞 回复 分享
发布于 2022-05-31 15:38
楼主,二面之后隔了多久有hr面邮件的?上周刚进行了二面😢
点赞 回复 分享
发布于 2022-06-11 15:03
第九题和第10题用vue怎么解决呢,有人了解吗
点赞 回复 分享
发布于 2022-09-02 15:21 湖北

相关推荐

点赞 评论 收藏
分享
        这一期把京东二面剩下的问题复盘一下,主要是针对构建项目中的各文件的作用。考察的点很细很细,工程化根本不需要问多复杂的原理,问这些答不上来就能知道你水平如何了,我答得特别烂,但是学习了很多东西。1.package.json文件中的script部分是干嘛的,scrpit中有个dev指令,后面配置了vite,这个vite哪里来的,如何运行起来的?        这个问题想回答好首先要知道package.json文件是干嘛的,里面的scrpit应该大部分同学都知道,但是vite从哪里来可能是大部分人没想过的问题。        关于package.json:在每个前端项目中,都有 package.json 文件,它是项目的配置文件,常见的配置有配置项目启动、打包命令,声明依赖包等。当我们克隆一个新的项目到本地时,需要执行 npm install(yarn install)命令来安装项目所需的依赖文件。当执行该命令时,就会根据 package.json 文件中的配置信息来自动下载所需的模块,也就是配置项目所需的运行和开发环境。package.json 中最重要的两个字段就是 name 和 version,它们都是必须的,如果没有,就无法正常执行 npm install 命令。npm 规定 package.json 文件是由名称和版本号作为唯一标识符的。        scrpits部分就是配置了我们常用的开发、打包等指令的,如我们常见的npm run dev和npm run build为什么能够运行或打包项目就是在这里进行了配置        那么vite是如何被找到的?我当时的第一反应是下面配置的devDependencies中有vite,这当然有关系,但是这只是配置了vite作为开发过程中的依赖,而真正能够让他被使用的包则是在node_modules中。我的理解是,当我们安装或者新建一个项目时,开发所用的devDependencies将vite作为我们开发时的依赖,通过这个配置让我们的程序关联上node——modules中的vite工具,再通过scripts中的指令调用。2.devdependencies和dependencies的区别,如果这两块的东西都写到devdependencies或dependencies里面有什么区别?        通过名字大部分同学都知道devDependencies配置的是开发环境所用的依赖,dependencies配置的是生产环境中的依赖。        他俩的详细作用如下:        dependencies 字段中声明的是项目的生产环境中所必须的依赖包。devDependencies 中声明的是开发阶段需要的依赖包,如 Webpack、Eslint、Babel 等,用于辅助开发。它们不同于 dependencies,因为它们只需安装在开发设备上,而无需在生产环境中运行代码。当打包上线时并不需要这些包,所以可以把这些依赖添加到 devDependencies 中,这些依赖依然会在本地指定 npm install 时被安装和管理,但是不会被安装到生产环境中。        那么如果这两块的东西都写到devdependencies或dependencies里面会影响什么?如果你的项目会被发为npm包被使用,那么devdependencies,dependencies必须分开写;如果并不发布,那么声明在dependencies 和 devDependencies 中的依赖没有大的区别。        如果安装一个npm包,那么这个包的dependencies意思是在运行时还需要依赖什么其他的包才能满足你的运行要求。安装的时候会安装这个包的dependencies,并且是向上递归的(可以看图2网友的解释)。3.编译完的dist和node_modules有啥关系吗,部署的是dist,node_modules会部署吗?        在构建项目的过程中(将源代码转换为 dist 中的可分发文件时),构建工具可能会读取 node_modules 中的包。例如,在使用 Webpack 构建一个包含 React 应用的项目时,Webpack 会从 node_modules 中找到 react 和 react - dom 等相关包,然后根据项目的配置将这些包中的必要代码与项目的源代码一起进行处理,最终生成的优化后的文件存放到 dist 中。        在开发过程中,开发者会在 node_modules 中安装各种开发依赖和生产依赖。当项目准备部署时,构建过程会将这些依赖的相关部分(根据代码的引用情况)正确地整合到 dist 中的文件里,从而确保项目在生产环境中能够正常运行,生产环境中不需要直接访问 node_modules 文件夹。        项目最终在 dist 中的可分发文件可能依赖于 node_modules 中的包所提供的功能。比如一个基于 Vue.js 构建的项目,node_modules 中的 vue 包提供了 Vue 框架的核心功能,构建工具会将这些功能整合到 dist 中的 JavaScript 文件里,使得浏览器在加载 dist 中的文件时能够正常运行 Vue 应用。4.pnpm-lock是什么        pnpm-lock.yaml 是 pnpm 包管理器生成的锁定文件。它类似于 npm 的 package-lock.json 或 yarn 的 yarn.lock 文件,用于记录项目的依赖关系和确保在不同环境中安装相同的包版本。        当你使用 pnpm 安装依赖时,它会自动生成 pnpm-lock.yaml 文件。这个文件包含了项目的依赖关系树,以及每个包的版本信息和依赖项的精确版本范围。这样,当你在不同的环境中重新安装依赖时,pnpm 会根据 pnpm-lock.yaml 文件来确保安装相同的包版本,以保持项目的一致性。该系列往期链接:第一期:https://www.nowcoder.com/feed/main/detail/a79cb52ce00c4f6d874683e65b8eb718?sourceSSR=users第二期:https://www.nowcoder.com/feed/main/detail/04aee48cc23f4b09a04d0dba327f0c5d?sourceSSR=users第三期:https://www.nowcoder.com/feed/main/detail/0195906f12dd4fc0826251e9ceee19ab?sourceSSR=users第四期:https://www.nowcoder.com/feed/main/detail/2c0a525fa04240778e6c43d7d355a7ca?sourceSSR=users第五期:https://www.nowcoder.com/discuss/673869939018588160?sourceSSR=users京东二面面经:https://www.nowcoder.com/feed/main/detail/18cb2c4275544c79af169aa92d2c3fd1?sourceSSR=users#牛客在线求职答疑中心##我的求职思考##京东##软件开发2024笔面经##前端#
点赞 评论 收藏
分享
评论
2
7
分享
牛客网
牛客企业服务