前端面试整理
-
- 1. css居中方式
- 2. px,em,rem,%
- 3. display的值和作用
- 4. 路由跳转的方式
- 5. vue生命周期的理解
- 6. vue数据双向绑定的原理,用了什么设计模式(web高级)
- 7. 数组去重
- 8. 统计字符串中出现最多的字符
- 9. js垃圾回收机制
- 10. 原型、原型链
- 11. 作用域链
- 12. 购物车实现过程
- 13.购物车详情页优化(用户商品加入太多导致页面卡顿)(懒加载、分页)
- 14.页面渲染过程
- 15.闭包
- 16.http协议
- 17.http中的方法,除了get方法、post方法
- 18.数据结构(排序算法,冒泡以外的)
- 19.vue和react的区别,用法区别
- 20.网页上哪里可以看到请求的所有信息
- 21 继承方法
- 22 团队合作的经验
- 23 通宵经历(不是玩的)
- 24 课外项目(自己瞎做的那种)
- 25 为什么学前端?
- 26 有没有参赛或者除了学校课程内容外的经验?应该是想知道有没有合作经验
- 27 原型与原型链
- 28 辗转相除法
- 29 数组转字符串
- 30 二级下拉菜单
- 31 bind() apply()
- 32 const用法
- 33 Utf-8编码汉字占多少个字节
- 34 Vue的钩子函数
- 35 http和https的区别
- 36 前端开发工具webstorm
- 37 Vue基于什么语言
- 38.Vue的第三方组件库ivew
- 39.HTML5的新特性
- 40.ajax
- 41.js对数组的操作,包括向数组中插入删除数据
- 42.组件之间的传参(例如子组件和父组件之间的传参)
- 43.css3的新特性
- 44.localstore和sessionstore的区别
- 45.盒子模型(怪异模型)
- 46.谈谈fixed ,related , absolute
- 47.js的选择器
- 48.两种定时器,setinterval和settimeout。因为settimeout是只执行一次的,如果要执行多次怎么做。
- 49.bookstrap的响应式所示怎么实现的。
- 50.js的数据类型
- 51.JS内存回收机制
- 52.promise是什么?能解决什么问题?
- 53.float和absolute有什么区别?
- 54.cookie和session有什么联系?
- 55.vue如何实现双向据绑定?
- 56.vue父组件子组件通信?
- 57.图片预加载和懒加载?
- 58.MVVM和MVC区别?
- 59.vue删除数据监测不到?
- 60.编程:连接两个数组并返回?
- 61.冒泡排序?
- 62.创建新数组,向数组插入数据
- 63.父组件子组件传参
- 64.es6新特性
- 65.js对数组有哪些操作方法
- 66.什么是ajax,可以用来做什么
- 67.讲下你做轮播图的思路,无缝轮播
- 68.http协议
- 69.css3新特性
- 70.css选择器的权重
- 71.js数据类型
- 72.减少页面加载时间的方法
- 73.怎么理解模块化开发
- 74.什么是闭包,有什么作用?
- 75.transition transform translate 之间的区别 transform的属性有哪些?
- 76.css3中的选择器
- 77.html5新特性 css3
- 78.定时器 settimeout和setinterval的区别,如果用settimeout实现每隔一定的时间就执行一次,怎么实现
- 79.bookstrap栅格系统,你怎么理解栅格系统
- 80.localstorage和sessionstorage的区别
- 81.路由跳转的方式
- 82.页面之间是怎么传参数的?
- 83.分析代码中最终生效的CSS样式(CSS样式权重计算)
- 84.手机号的正则表达式(以1开头的11位数字)
- 85.用CSS实现一个背景色为红色,半径为200px的圆,并设置不停的上下移动动画
- 86.列举两种清除浮动的方法(代码实现或者描述思路)
- 87.代码实现3栏效果,左右两栏固定宽度,中间栏随着浏览器宽度自适应变化
- 88. < ol >< li >< /li >< /ol>结构的html代码,写原生js实现点击某个li就弹出对应的索引值
- 89.对数组进行随机排序, 要求数组中的每个元素不能停留在原来的位置
- 90.代码实现parse方法,将有效的JSON字符串转换成JavaScript对象
- 91.实现类数组功能的类,使得以下代码可以正常运行
- 92.原生js的变量类型有哪些?ES6新增哪几个变量类型?
- 93.cookie和localStorage的区别,如何获得他们?
- 94.是否可以在html中写 标签?是否可以用?如何让它正常显示?怎么创建自定义标签?
- 95.vue路由传参怎么实现?
- 96.js的数组方法有哪些?
- 97.es6的有哪些扩展?新增的数组方法有哪些?用什么方法连接两个数组?函数扩展中的箭头函数中的this所指向的是什么?一般函数的this指向的又是什么?
- 98.用什么方法判断是否是数组?又用什么方法判断是否是对象?
- 99.引用样式的方式有哪几种?他们的优先级排序怎么样?
- 100.vue生命周期的钩子函数有哪些?
- 101.对H5新增的语义化标签的理解?
- 102.最近有没有在看某一本书?或者是有没有学习某一个课程?有没有什么学习的计划?
1. css居中方式
text-align:center; //基础属性居中当前元素内部行内元素
display:inline-block;width:***px //居中块级元素中的行内元素
margin:0 auto //块级元素居中
例如:
body代码:
<div class="center">
<span class="center_text"></span>
</div>
style代码:
center_text{
display:block;
width:500px<br> margin:0 auto;
}
2. px,em,rem,%
1. px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。
2. em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的
字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。
3. rem是CSS3新增的一个相对单位。使用rem为元素设定字体大小时,仍然是相对
大小,但相对的只是HTML根元素。
4. 定义基于包含块(父元素)宽度的百分比宽度。
注意:如果你的用户群都使用最新版的浏览器,那推荐使用rem,如果要考虑兼容性,那就使用px,或者两者同时使用
3. display的值和作用
none:此元素不会展示;
block:此元素显示为块级元素,此元素前后会带有换行符
inline:默认,此元素会被显示为内联元素,元素前后无换行符
inline-block:行内块元素(css2.1新增的值)
其他display的属性值不是很常用,其具体的含义如下:
list-item: 此元素会作为列表显示。
run-in: 此元素会根据上下文作为块级元素或内联元素显示。
table: 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
inline-table: 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。
table-row-group: 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。
table-header-group: 此元素会作为一个或多个行的分组来显示(类似 <thead>)。
table-footer-group: 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。
table-row: 此元素会作为一个表格行显示(类似 <tr>)。
table-column-group: 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。
table-column: 此元素会作为一个单元格列显示(类似 <col>)
table-cell: 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)
table-caption: 此元素会作为一个表格标题显示(类似 <caption>)
inherit: 规定应该从父元素继承 display 属性的值。
另外有两个已经废除的属性值:
compact CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
marker CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
4. 路由跳转的方式
- router-link
- 不带参数
<router-link :to="{name:'home'}">
<router-link :to="{path:'/home'}"> //name,path都行, 建议用name
// 注意:router-link中链接如果是'/'开始就是从根路由开始,
如果开始不带'/',则从当前路由开始。
- 带参数
<router-link :to="{name:'home', params: {id:1}}">
// params传参数 (类似post)
// 路由配置 path: "/home/:id" 或者 path: "/home:id"
// 不配置path ,第一次可请求,刷新页面id会消失
// 配置path,刷新页面id会保留
// html 取参 $route.params.id
// script 取参 this.$route.params.id
<router-link :to="{name:'home', query: {id:1}}">
// query传参数 (类似get,url后面会显示参数)
// 路由可不配置
// html 取参 $route.query.id
// script 取参 this.$route.query.id
- this.$router.push() (函数里面调用)
-
不带参数
this. r o u t e r . p u s h ( ′ / h o m e ′ ) t h i s . router.push('/home') this. router.push(′/home′)this.router.push({name:‘home’})
this.$router.push({path:’/home’}) -
query传参
this.$router.push({name:'home',query: {id:'1'}}) this.$router.push({path:'/home',query: {id:'1'}}) // html 取参 $route.query.id // script 取参 this.$route.query.id
-
params传参
-
this.$router.push({name:'home',params: {id:'1'}}) // 只能用 name // 路由配置 path: "/home/:id" 或者 path: "/home:id" , // 不配置path ,第一次可请求,刷新页面id会消失 // 配置path,刷新页面id会保留 // html 取参 $route.params.id // script 取参 this.$route.params.id
5. vue生命周期的理解
1.beforeCreate
在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
2.created
实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),
属性和方法的运算,