撩课-Web大前端每天5道面试题-Day32
1.module、export、import是什么,有什么作用?
module、export、import是ES6用来统一前端模块化方案的设计思路和实现方案。 export、import的出现统一了前端模块化的实现方案, 整合规范了浏览器/服务端的模块化方法, 用来取代传统的AMD/CMD、requireJS、seaJS、commondJS 等等一系列前端模块不同的实现方案,使前端模块化更加统一规范, JS也能更加能实现大型的应用程序开发。 import引入的模块是静态加载(编译阶段加载)而不是动态加载(运行时加载)。 import引入export导出的接口值是动态绑定关系, 即通过该接口,可以取到模块内部实时的值
2.日常前端代码开发中,有哪些值得用ES6去改进的编程优化或者规范?
常用箭头函数来取代var self = this;的做法。 常用let取代var命令。 常用数组/对象的结构赋值来命名变量, 结构更清晰,语义更明确,可读性更好。 在长字符串多变量组合场合, 用模板字符串来取代字符串累加, 能取得更好地效果和阅读体验。 用Class类取代传统的构造函数,来生成实例化对象。 在大型应用开发中, 要保持module模块化开发思维, 分清模块之间的关系,常用import、export方法。
3.请你谈谈Cookie的弊端?
cookie虽然在持久保存客户端数据提供了方便, 分担了服务器存储的负担,但还是有很多局限性的 第一:每个特定的域名下最多生成20个cookie 1.IE6或更低版本最多20个cookie 2.IE7和之后的版本最后可以有50个cookie。 3.Firefox最多50个cookie 4.chrome和Safari没有做硬性限制
4.git fetch和git pull的区别?
git pull:
相当于是从远程获取最新版本并merge到本地
git fetch:
相当于是从远程获取最新版本到本地,不会自动merge
5.svn与git的区别?
git是分布式的,svn不是。 git跟svn一样有自己的集中式版本库或服务器。 但git更倾向于被使用于分布式模式, 克隆版本库后即使没有网络也能够commit文件, 查看历史版本记录,创建项目分支等, 等网络再次连接上Push到服务器端。 git把内容按元数据方式存储,而svn是按文件。 所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。 git目录是处于你的机器上的一个克隆版的版本库, 它拥有中心版本库上所有的东西, 例如标签,分支,版本记录等。 git没有一个全局的版本号,svn有。 git的内容完整性优于svn。 因为git的内容存储使用的是SHA-1哈希算法。 git可以有无限个版本库,svn只能有一个指定中央版本库。 当svn中央版本库有问题时, 所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。 每一个git都是一个版本库, 区别是它们是否拥有活跃目录(Git Working Tree)。 如果主要版本库(例如:置於GitHub的版本库)有问题, 工作成员仍然可以在自己的本地版本库(local repository)提交, 等待主要版本库恢复即可。工作成员也可以提交到其他的版本库!