前端面试总结(二)

1.jqurey vue uni-app 微信小程序的传参方式?

  • Jquery:
<button id="aa">111</button>
<script type="text/javascript">
	var name = '你好'
	$(function(){
		$('#aa').on('click',{name:name},function(e){
			console.log(e.data.name)
		})		
	})
</script>
  • Vue:
<button @click="click">click</button>
//传递
routerTo(){
this.$router.push({ name: 'news', params: { userId: 123 }});
}
//接收
{{this.$route.params.userId}}
  • Uni-app:
uni.navigateTo({
    url:'./nav?index='+navDat
})
  • 微信小程序:
wx.navigato({
  url:"跳转页面?参数名=参数"
})

2.session和cookie的区别?

  • session 在服务器端,cookie 在客户端(浏览器)
  • session 默认被存在在服务器的一个文件里(不是内存)
  • session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说, 如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现, 比如在 url 中传递 session_id)
  • session 可以放在 文件、数据库、或内存中都可以。
  • 用户验证这种场合一般会用 session

3.前端如何性能优化?

  • 将CSS放在head中
  • 减少 HTTP 请求数
  • 减少 DNS 查询
  • 使用 CDN
  • 避免重定向
  • 图片懒加载
  • 减少 DOM 元素数量
  • 减少 DOM 操作
  • 使用外部 JavaScript 和 CSS
  • 压缩 JavaScript 、 CSS 、字体、图片等
  • 优化 CSS Sprite
  • 使用 iconfont
  • 字体裁剪
  • 多域名分发划分内容到不同域名
  • 尽量减少 iframe 使用
  • 避免图片 src 为空
  • 把样式表放在 中
  • 把脚本放在页面底部

4.git是什么 git的五个命令 git和svn的区别?

git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
五个命令

  • git init 把这个目录变成Git可以管理的仓库
  • git add . 文件添加到本地仓库
  • git commit -m "备注信息"把文件提交到仓库,
  • git remote add origin 复制的仓库链接上传到github仓库
  • git push -u origin master全部上传

SVN与GIT的区别:

  • GIT是分布式的,而SVN是集中式的
  • GIT把内容按元数据方式存储,而SVN是按文件:因为git目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。​
  • GIT分支和SVN的分支不同:svn会发生分支遗漏的情况,而git可以同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,简单而快捷的合并这些文件。
  • GIT没有一个全局的版本号,而SVN有
  • GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

es5和es6的区别? Es6的新特性

区别

  • ES6 解决了核心语言的许多局限性,使开发人员更容易编写代码。
  • ES6 增添了许多必要的特性
  • ES5中的引用需要先使用require导入React包,成为对象,再去进行真正引用
  • ES6里,可以使用import方法来直接实现系统库引用,不需要额外制作一个类库对象

ES6中的新特性

  • ES6中的let命令,声明变量,用法和var差不多,但是let是为JavaScript新增了块级作用域,ES5中是没有块级作用域的,并且var有变量提升的概念,但是在let中,使用的变量一定要进行声明;
  • ES6中变量的结构赋值,包括对象解构和数组解构以及混合解构,比如:var [a,b,c] = [0,1,2];
  • ES6中的函数定义也不再使用关键字function,而是利用了箭头函数=>来进行定义;
  • ES6中可以设置默认函数参数,如function A(x,y=9){};
  • ES6中新增了Set集合和Map集合;
  • ES6新增了一个基本数据类型Symbol;

6.js操作数组的五个方法 字符串转数组? 数组转字符串?

  • concat()
    功能:连接两个或更多的数组,并返回结果。
    注意事项:此方法不会改变现有的数组,而是仅仅会返回被连接数组的一个副本。
  • entries()
    功能:返回数组的可迭代对象。
    注意事项:此方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。并且迭代对象中数组的索引值作为 key, 数组元素作为 value。
  • find()
    功能:返回符合传入测试(函数)条件的数组元素。
    注意事项:find() 对于空数组,函数是不会执行的; find() 并没有改变数组的原始值。
  • forEach()
    功能:数组每个元素都执行一次回调函数。
    注意事项:forEach() 对于空数组是不会执行回调函数的。
  • indexOf()
    功能:搜索数组中的元素,并返回它所在的位置。
    注意事项:此方法将从头到尾地检索数组,看它是否含有对应的元素。
  • map()
    功能:通过指定函数处理数组的每个元素,并返回处理后的数组。

var arr = [1,2,3]

  • 转字符串
    var str = arr.join(",") ===> “1,2,3”
    arr.join(" * ") ===> “123”

  • 转数组
    str.split(",") === > [‘1’, ‘2’, ‘3’]

7. vue uni-app 微信小程序的数据绑定

  • Vue:
    MVVM双向数据绑定,v-model
  • uni-app
    {{}} data数据绑定
  • 微信小程序:
    {{}} data数据绑定

8.bootstrap的class前缀

当使用特定厂商的带有前缀的属性时,通过缩进的方式,让每个属性的值在垂直方向对齐,这样便于多行编辑。
1.超小设备手机(<768px):.col-xs-

2.小型设备平板电脑(>=768px):.col-sm-

3.中型设备台式电脑(>=992px):.col-md-

4.大型设备台式电脑(>=1200px):.col-lg-

9. Vue渲染时闪光问题怎么解决

[v-cloak]{
      display:none;
    }

10. document.ready和window.onload的区别?

  • document.ready方法在DOM树加载完成后就会执行,window.onload是在页面资源(比如图片和媒体资源,它们的加载速度远慢于DOM的加载速度)加载完成之后才执行。
  • $(document).ready要比window.onload先执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值