专业技能
一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题
- HTML+CSS
- JavaScript
- 前端框架
- 前端性能优化
- 前端监控
- 模块化+项目构建
- 代码管理
- 信息安全
- 网络协议
- 浏览器
- 算法与数据结构
- 团队管理
- 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容
| 工作流程 | 1.每次更改文件之前都得update操作,有的时候修改过程中这个文件有更新,commit不会成功 2.有冲突,会打断提交动作(冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。) | 1.开始工作前进行fetch操作,完成开发工作后push操作,有冲突解决冲突 2.git的提交过程不会被打断,有冲突会标记冲突文件 3.gitflow流程(经典) |
| 内容管理 | svn对中文支持好,操作简单,适用于大众 | 对程序的源代码管理方便,代码库占用的空间少,易于分支化管理 |
| 学习成本 | 使用起来更方便,svn对中文支持好,操作简单,适用于大众 | 更在乎效率而不是易用性,成本较高(有很多独有的命令,rebase,远程仓库交互的命令,等等) |
| 权限管理 | svn的权限管理相当严格,可以按组、个人针对某个子目录的权限控制(每个目录下都会有个.svn的隐藏文件) | git没有严格的权限管理控制,只有账号角色划分(在项目的home文件下有且只有一个.svn目录) |
| 管理平台 | SVNBucket SVNBucket - 免费 SVN 代码托管服务器,不限私有,不限成员 | gitlab(建议使用,集成的功能较多,API开发),gerrit,github等 |
svn git 优缺点
SVN对中文支持好,操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便。
git对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。不支持中文,图形界面支持差,使用难度大。不易推广。
分布式代码版本管理系统并不一定适合所有团队,比如中小团队可能更关心的只是成本更低,简单易用,那么SVN等这类集中式版本管理工具还是更为适合。但是不管团队最终选用什么代码版本管理工具,只要适合自己的团队的开发流程和工作方式,并且代码管理顺畅就可以了。
git命令总结
=======
列出当前文件
ll
列出带隐藏资源的文件
ls -lA
初始本地仓库
git init
查看当前在什么位置
pwd
返回上一级文件
cd …
设置签名
命令
- 创建一个文件
vim good.txt
-
形式 name 用户名 token email 邮箱地址 作用: 用于区分不同开发人员的身份
-
项目级别/仓库级别:尽在当前本地仓库有效
git config user.name sunzhihao
git config user.email 1036786540@qq.com
- 查看设置好了吗
cat .git/config
- 系统用户级别:登录当前操作系统的用户范围
git config --global user.name sunzhihao
git config --global user.email 1036786540@qq.com
- 查看设置好了吗
cd ~
ls -lA|less [ 查看文件查看隐藏文件 ]
cat .gitconfig [ 读区改文件信息 ]
- 优先级 :如果没设置签名则是系统用户级别 ,但是设置项目级别就优系统用户级别 二者都没有是不允许的
追踪文件列表
将 ‘新建 / 修改’ 添加到暂存区(添加操作就是你要操作哪个文件)
git add . 或 git add -A 或 git add [ 文件名字 ]
暂存区删除
把你这个文件村暂存区里删除,不是直接删掉文件 - 你可以后悔
git rm --cached [ 文件名字 ]
查看文件的状态
git status [ 查看工作区,和暂存区的工作状态 ]
提交到暂存区
git commit -m “这里写的是本次需求新增了什么功能” file.txt [ 提交到本地库]
查看提交的历史记录
git log
多屏显示控制 : 空格向下翻页 b 向上翻页 q 退出
历史记录一行显示 若果日志太多屏幕放不下
git log --pretty=oneline
输出历史记录但是hash直选中其中一部分 (一行显示)
git log --oneline
显示到哪个版本需要移动几步
git reflog
HEAD@{移动到当前版本去要第几步}
回退任意版本信息
git reset --hard 35851ba [ 35851ba 索引值 ]
reset 命令的三个参数 :
–soft 仅仅在本地库移动 HEAD 指针
–mixed 在本地库移动head 指针 重置暂存区
–hard 在本地库移动head 指针 重置暂存区 重置工作存区
回退上一版本
git reset --hard HEAD^ [ 回退到上一个版本 ]
git reset --hard HEAD^^ [ 回退到上二个版本 (以此类推)]
git reset --hard HEAD~2 [ 回退到上二个版本 (以此类推)]
删除文件恢复文件
rm file.txt
恢复回退版本即可
前提 删除前,文件存在的状态提交到了本地库
git reset --hard 35851ba [ 删除操作已经提交到本地库 35851ba指针位置 ]
git reset --hard HEAD [ 删除操作尚未提交到本地库 ]
比较内容的差异 (将工作区的文件内容与本地历史记录里的内容比较差异 )
不带指定文件名比较多个
git diff 练习git.txt [练习git.txt文件名字]
git强制推送push(慎用)
git push -f origin master
如何删除git暂存区的文件
git rm -r --cached 文件名
- 使用reset命令 回退到最近一次push后的状态并清空暂存区,但是工作区修改的内容也会被回退
git reset HEAD 文件名
清除缓存
npm cache clean -f
查看全局安装的包
npm list -g --depth=0
删除node-modules包
npm i -g npkill
删除
npkill
全局安装 npm i -g npkill
进入想清理的文件夹 cd 文件路径
输入npkill 会自动查找该文件中node-models
光标上下移动来选择要清理的目录,释放宝贵的空间
按空格删除
git 分支
初始化之后是有一个master 主分支 (骨干)
-u
如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。 git push -u origin master
分支的好处
-
同时并行推进多个功能开发。提高开发效率。
-
各个分支在开发过程中。如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除,重新开始即可。
创建分支
git branch hot_fix - hot_fix [ hot_fix 分支名字]
删除分支
git branch -d [分支名字]
查看分支
git branch -v
切换分支
git checkout hot_fix [ hot_fix 分支名字]
新建一个本地分支并切换
git checkout -b dbg_lichen_star [dbg_lichen_star 分支名字]
合并分支
切换到要合并的分支上面 git merge 进行合并
git checkout hot_fix [ hot_fix 分支名字]
git merge hot_fix [ hot_fix 分支名字]
分支冲突
只要你的代码和我的代码在同一行修改了,我们合并分就会冲突,他会显示自动合并失败,然我们解决分支,然后找到对应的文件夹,里面的内容会用 大于号小于号等号分割开来,找到修改代码的人,我们要商量好,就决定要用哪个代码。把多余的代码删除即可。再去执行 git add . 即可 ,再去用 git commit -m “结束合并” 不能带文件名字 结局完毕。
专业技能
一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题
- HTML+CSS
- JavaScript
- 前端框架
- 前端性能优化
- 前端监控
- 模块化+项目构建
- 代码管理
- 信息安全
- 网络协议
- 浏览器
- 算法与数据结构
- 团队管理
- 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容