前端面试题
文章平均质量分 96
buleRainbow
这个作者很懒,什么都没留下…
展开
-
关于Javascript遇到的一些面试题(回文数字,对称数)
文章目录1.输出字符串中所有的叠字2.打印出 1-1000000 之间的对称数(回文数字),例如 121,131,141,13313.获取页面中所有的checkbox属性的input框4.编写一个函数来判断x是不是整数5.下面语句的输出结果6.写出下面代码块的输出结果7.写出下面代码的输出结果8.写出下面代码的打印结果9.输出下面代码的输出顺序10.写出下面代码的输出结果(这是一道经典的面试题,我在很多的地方见过)11.数组乱序1.输出字符串中所有的叠字输入’晴川历历汉阳树,芳草萋萋鹦鹉洲’,输出原创 2020-12-05 14:11:40 · 484 阅读 · 0 评论 -
vue与原生(ios,安卓)交互
文章目录1.Vue和原生(ios和安卓)的交互(第一种方法)一、原生调用Vue方法1、Vue2、原生安卓iOS二、Vue 调用原生1、Vue2、原生安卓iOS2.Vue和原生(ios和安卓)的交互(第二种方法)统一使用WebViewJavascriptBridge:1.Vue和原生(ios和安卓)的交互(第一种方法)一、原生调用Vue方法1、Vuecreated() { //Vue的方法给原生调用,则需要把方法挂在Window下面 window.getDataFromNative =原创 2020-11-17 14:55:02 · 3710 阅读 · 1 评论 -
vue项目实战
文章目录1.顶部悬停效果html代码script代码style2.电话本列表效果( 右边字母分类 上下滑动 旁边字母显示高亮)1.安装依赖2.模拟数据3.将data.json 转成模拟数据4.dom.js 编写5.singer.js 编写6.编写scroll.vue子组件编写7.编写list.vue子组件8.编写phonelist.vue父组件3.vue做代理解决跨域第一步安装依赖第二步进行配置第三步api.js调用第四步页面调用4.Vue路由切换时的左滑和右滑效果示例1.顶部悬停效果html代码&l原创 2020-11-17 14:53:51 · 817 阅读 · 0 评论 -
vue常见面试题(三)
文章目录51.params和query的区别1.query方式传参和接收参数2.params方式传参和接收参数另外,二者还有点区别,直白的来说query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会再地址栏中显示52. vue mock数据2.将data.json 转成模拟数据3.vue页面调用53 vue封装通用组件vue组件三要素基本用法一、props:数据父组件传入子组件二、子组件触发父组件事件三、记得留一个 slot再来个例子:54.vue初始原创 2020-11-17 14:51:55 · 673 阅读 · 0 评论 -
vue常见面试题(二)
文章目录26.v-if和v-for的优先级27.assets和static的区别28.列举常用的指令29.vue常用的修饰符修饰符(1).lazy(2).number(3).trim事件修饰符(1).stop(2) .prevent(3).capture(4).self(5) .once(6).passive(7).事件修饰符还可以串联键盘修饰符系统修饰键.exact修饰符鼠标按钮修饰符30.数组更新检测31.Vue.set视图更新Vue.set() 响应式新增与修改数据32.自定义指令详解第一步第二步完善原创 2020-11-17 14:51:14 · 957 阅读 · 0 评论 -
vue常见面试题(一)
文章目录1.vue优点2.vue父组件向子组件传递数据?3.子组件像父组件传递事件4.v-show和v-if指令的共同点和不同点5.如何让CSS只在当前组件中起作用6.的作用是什么?7.如何获取dom通过refs方法8.说出几种vue当中的指令和它的用法?9. vue-loader是什么?使用它的用途有哪些?10.为什么使用key11.axios及安装1.axios是什么?2.axios安装?12.axios解决跨域13.v-model的使用14.scss的安装以及使用15. 请说出vue.cli项目中sr原创 2020-11-17 14:49:43 · 536 阅读 · 0 评论 -
vuex常见面试题
文章目录1.vuex是什么?怎么使用?哪种功能场景使用它?2.vuex有哪几种属性总结3.不使用Vuex会带来什么问题4.Vue.js中ajax请求代码应该写在组件的methods中还是vuex的actions中?5.vuex一个例子方法1.首先定义两个页面2.开始使用vuex,新建一个 sotre文件夹,分开维护 actions mutations getters3.在store/index.js文件中新建vuex 的store实例4.actions5.mutations6.getters7.在main.原创 2020-11-17 12:02:02 · 1594 阅读 · 0 评论 -
vue路由(vue-router)面试题
文章目录1.mvvm 框架是什么?MVVMMVCMVPMVVM模式的优点以及与MVC模式的区别2.vue-router 是什么?它有哪些组件3.active-class 是哪个组件的属性?active-class使用方法4.怎么定义 vue-router 的动态路由? 怎么获取传过来的值获取传过来的值5.vue-router 有哪几种导航钩子?1.导航钩子的作用2.植入路由导航的方式最后是完整的导航解析流程:6.$route 和 $router 的区别7.vue-router响应路由参数的变化8.vue-r原创 2020-11-17 12:00:48 · 11271 阅读 · 0 评论 -
Vue生命周期函数面试题
1.什么是 vue 生命周期vue生命周期详解Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问原创 2020-11-17 11:58:54 · 480 阅读 · 0 评论 -
vue面试题
一、css响应式布局如何实现 响应式布局主要是可以实现自适应不同网页的分辨率,让客户有更好的体验。 1、rem布局 2、百分比布局 3、vw布局 4、媒体查询 media (不同的分辨率设置不同的css样式) 5、弹性盒子布局二、rem响应式布局的实现原理 rem实现原理主要是动态绑定根元素html的字体大小来设置的,比如html字体 大小是100px,那么1rem=100px。三、数据类型判断 typeof 主要是判断基本数据类型,但是引用数据类型是不起做用的。 insta原创 2020-10-19 16:06:13 · 623 阅读 · 1 评论 -
ES6新增方法面试题
1.let const var比较let 和 const 定义的变量不会出现变量提升,而 var 定义的变量会提升。let 和 const 是JS中的块级作用域let 和 const 不允许重复声明(会抛出错误)let 和 const 定义的变量在定义语句之前,如果使用会抛出错误(形成了暂时性死区),而 var 不会。const 声明一个只读的常量。一旦声明,常量的值就不能改变(如果声明是一个对象,那么不能改变的是对象的引用地址)2.反引号(`)标识用一对反引号(`)标识,它可以当作普通字原创 2020-11-12 16:16:56 · 1145 阅读 · 1 评论 -
ES6数组面试题
1.forEach()var arr = [1,2,3,4];arr.forEach((item,index,arr) => { console.log(item) //结果为1,2,3,4})// 数组的遍历方法,无返回值,不改变原数组2.map()var arr = [1,2,3,4];arr.map((item,index,arr) => { return item*10 //新数组为10,20,30,40})//map遍历数组,返回一个新数组,不改变原原创 2020-11-12 16:16:11 · 1672 阅读 · 3 评论 -
ES6编程题
1.使用解构,实现两个变量的值的交换let a = 1;let b = 2;[a,b] = [b,a];2.利用数组推导,计算出数组 [1,2,3,4] 每一个元素的平方并组成新的数组。var arr1 = [1, 2, 3, 4];var arr2 = [for (i of arr1) i * i];console.log(arr2);3.使用ES6改下面的模板let iam = "我是";let name = "王德发";let str = "大家好,"+iam+name+原创 2020-11-12 16:15:30 · 791 阅读 · 0 评论 -
JS面试题-正则表达式常见面试题
1.给一个连字符串例如:get-element-by-id转化成驼峰形式。var str = "get-element-by-id";var reg = /-\w/g; // 匹配横杆以及之后的一个字符,全局匹配console.log(str.replace(reg,function($0){ return $0.slice(1).toUpperCase(); // 匹配到到是-e -b -i 形式截取后一个字符转成大写 }));2.匹配二进制数字var str = "1010原创 2020-11-12 15:35:19 · 1971 阅读 · 2 评论 -
JS前端面试题(二)
31.说说你对promise的了解依照Promise/A+的定义,Promise有四种状态:pending:初始状态, 非fulfilled或rejected.fulfilled:成功的操作.rejected:失败的操作.settled: Promise已被fulfilled或rejected,且不是pending另外,fulfilled与rejected一起合称settledPromise对象用来进行延迟(deferred) 和异步(asynchronous) 计算Promise原创 2020-11-12 15:34:25 · 1111 阅读 · 1 评论 -
JS前端面试题(三)
61.new的原理是什么?通过new的方式创建对象和通过字面量创建有什么区别?new:创建一个新对象。这个新对象会被执行[[原型]]连接。将构造函数的作用域赋值给新对象,即this指向这个新对象.如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象。function new(func) { lat target = {}; target.__proto__ = func.prototype; let res = func.call(targe原创 2020-11-12 15:33:55 · 4708 阅读 · 14 评论 -
JS前端面试题(一)
1.简述同步和异步的区别同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容2.怎么添加、移除、复制、创建、和查找节点(1)创建新节点createDocumentFragment() //创建一个DOM片段createElement() //创建一个具体的元素createTextNode() //创建一原创 2020-11-12 15:33:18 · 779 阅读 · 0 评论 -
浏览器、html、css面试题(三)
61.absolute的containing block计算方式跟正常流有什么不同?无论属于哪种,都要先找到其祖先元素中最近的 position 值不为 static 的元素,然后再判断:若此元素为 inline 元素,则 containing block 为能够包含这个元素生成的第一个和最后一个 inline box 的 padding box (除 margin, border 外的区域) 的最小矩形;否则,则由这个祖先元素的 padding box 构成。如果都找不到,则为 initial原创 2020-11-12 11:20:53 · 453 阅读 · 1 评论 -
浏览器、html、css面试题(二)
31.data-属性的作用data-为H5新增的为前端开发者提供自定义的属性,这些属性集可以通过对象的 dataset 属性获取,不支持该属性的浏览器可以通过 getAttribute 方法获取 :需要注意的是:data-之后的以连字符分割的多个单词组成的属性,获取的时候使用驼峰风格。 所有主流浏览器都支持 data-* 属性。即:当没有合适的属性和元素时,自定义的 data 属性是能够存储页面或 App 的私有的自定义数据。32.如何让Chrome浏览器显示小于12px的文字为了兼容所有的浏原创 2020-11-12 11:20:07 · 670 阅读 · 2 评论 -
浏览器、html、css面试题(一)
1.什么是盒模型盒模型margin(外边距)- 清除边框外的区域,外边距是透明的。border(边框)- 围绕在内边距和内容外的边框。padding(内边距)- 清除内容周围的区域,内边距是透明的。content(内容)- 盒子的内容,显示文本和图像。W3C的标准盒模型在标准的盒子模型中,width指content部分的宽度IE的盒模型在IE盒子模型中,width表示content+padding+border这三个部分的宽度css如何设置两种模型这里用到了CSS3 的属性原创 2020-11-12 10:57:39 · 3183 阅读 · 6 评论 -
前端面试题:JavaScript算法
js去重(基础)数组去重function qc(arr1){//创建一个新的数组let arr = [];//遍历数组arr1for( let i = 0; i < arr1.length; i++) {//如果arr1不在arr中 会返回-1 那么将和这个元素存在新建的arr中 if( arr.indexOf(arr1[i]) == -1) { arr.push(arr1[i]) }}//返回arrreturn arr;}arr1 =原创 2020-11-11 21:12:08 · 433 阅读 · 1 评论