面试题
文章平均质量分 73
天下1281
这个作者很懒,什么都没留下…
展开
-
冒泡排序算法
冒泡排序在面试题中比较常见,今天我们就看哈它的原理及过程。 冒泡排序的实现原理:假如我们有五个数,分别是,8,2,6,5,1。我们要进行从小到大排序,一般的话我们会用数组中的sort()方法,这里我们用冒泡排序实现它。 为什么叫冒泡排序,因为和水中冒泡的原理是一样的。小的会向上浮,大的会向下沉。 那么在排序中我们该如何运用呢? 假如它们是这样排列的: 8 2 6 5 1 首先我们原创 2017-06-20 21:42:11 · 1541 阅读 · 0 评论 -
如何判断一个数组和对象为空?
数组一般用数组的长度可以判断如果是对象呢?有如下方法:1.把对象转化为字符串JSON.stringify();然后通过判断长度。let obj = {a:1};let res = JSON.stringify(obj);console.log(res === '{}'); //说明是空对象2.遍历let obj = {};function each(obj) { f...原创 2019-03-03 21:27:56 · 2194 阅读 · 0 评论 -
React如何父子传值
众所周知,React父组件给子组件传值通过属性。父组件 <div> <Input father='父组件传下来的值' /></div>子组件Input<div> { this.props.father }</div>那么子组件给父组件传值该如何传呢?一句话可原创 2019-03-09 10:19:32 · 341 阅读 · 0 评论 -
嵌套数组去重的方法
嵌套数组去重封装成一个函数let arr = [[1,2,3],[3,4,4,5,5],[6,7,8,9,[11,12,[12,13,[14]]]],10];function mapArr(arr) { let newArr = []; for(var i=0;i<arr.length;i++) { if(Array.isArray(arr[i])) {...原创 2019-03-14 23:46:30 · 1322 阅读 · 0 评论 -
JSON对象去重复
noRepeat(arr) { var newArr = []; for(var i=0,l = arr.length; i < l; i++) { for(var j=i+1;j<l;j++) { if(JSON.stringify(arr[i]) == JSON.stringify(arr[j]...原创 2019-03-20 23:53:14 · 1676 阅读 · 0 评论 -
闭包的使用场景
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; }...原创 2019-06-04 18:11:09 · 1247 阅读 · 0 评论 -
一个通用的侦听器
一个通用的侦听器var EventUtil = { addHandler: function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false); }else if(element.atta...原创 2019-08-31 22:50:32 · 191 阅读 · 0 评论 -
2019年9月1日 星期日 今日学习内容
遇到的问题localStorage的用法box-sizing: border-box;1.localStorage的用法作用: 用于本地存储,以键值对的形式存起来的。首先我想问一下localStorage是一个什么东西?其实localStorage是一个对象。localStorage.setItem('name','wangxiao');上面我们为localStorage设置...原创 2019-09-01 20:50:14 · 165 阅读 · 0 评论 -
问题列举
ES6新增的数组、字符串、对象的方法。前端性能优化http常用的状态码vue生命周期函数原创 2019-09-04 00:03:14 · 111 阅读 · 0 评论 -
问题列举
问题列举JS 如何理解 0.1+0.2>0.3参考文章原创 2019-09-05 23:35:59 · 202 阅读 · 0 评论 -
如何让文本环绕图片
用css实现文本环绕图片,该如何实现给img标签加上float:left;即可。就是这么神奇。<div> <img style={{ width: 100,height: 100, float: 'left'}} src={ QQImage } /> 新的生命周期函数新的生命周期函数新的生命周期函数新的生命周期函数新的生命周期 函数新的生命周期...原创 2019-02-16 11:08:54 · 1110 阅读 · 0 评论 -
setTimeout的用法
众所周知,js代码是自上而下执行的,也就是所谓的同步。如果遇到异步执行的结果可能有些差异。setTimeout就是异步进行的,for(var i=0;i<5;i++) { console.log('a',i);}console.log('b',i); 想问哈 a会输出什么?b呢?想必这个很容易,大家一定不会做错。这里有个问题,b输入的为何是5。解答:因为当i为5时就...原创 2019-02-21 20:19:28 · 638 阅读 · 0 评论 -
add(2,3)和add(2)(3)编写一个函数,都返回5,该如何实现?
function add(x,y){var sum = x; if(y){ return (sum + y); } else { var add2 = function(z){ return (sum + z); } return add2; }}var add1 =原创 2017-06-21 09:37:37 · 5929 阅读 · 0 评论 -
如何让一个盒子垂直居中
方法1:宽度和高度已知的。 思路: 给父元素相对定位 给子元素绝对定位<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>居中</title> <style type="text/css"> #box{ width: 400px; heig原创 2017-07-11 00:57:33 · 10142 阅读 · 0 评论 -
关于margin-top和margin-bottom的问题
问题描述: 假如有一个header的盒子和一个footer的盒子,分别给header盒子margin-bottom:60px;再给footer盒子,margin-top: 15px;读者朋友你觉得这个中间的边距是多少呢? 答案是:60px 因为边距重合在一起了,选最大者,因此为60px,这是浏览器的一个bug。面试有时会提到。原创 2017-06-09 21:41:33 · 2882 阅读 · 0 评论 -
定义一个变量a和b,不通过中间变量就可以交换值
关于这个问题,我起初是通过三目运算,但是最后发现不能达到目的,因此就有了下文的由来: 可以通过这种方式实现a = a + b;b = a - b;a = a -b;<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>定义一个变量a和b,不通过中间变量就可以交换值</title></head><body>原创 2017-06-09 23:01:52 · 466 阅读 · 0 评论 -
setTimeout()延时器
准所周知,setTimeout是延时器,想必让大家写一个延时器也没有任何问题,延时器中的延时设置为0,又会是怎样的效果呢? 我们看一下延时器的写法:setTimeout(function(){},1000)接下来我们看一个例子for( var i=0;i<6;i++){ setTimeout(function(){ console.log("里面输出的结果是:",i);原创 2017-07-12 00:11:09 · 3521 阅读 · 0 评论 -
常见面试题
1.get和post的区别: (1).本质区别: get是向服务器请求数据,post是向服务器发送数据。 (2).服务器获取值的方式 get方式提交的数据,服务器端使用request.QueryString获取变量的值。 post方式提交的数据,服务器端使用request.Form获取数据。 (3).安全性 get安全性能低,post安全性能高。但是post方式执行效率要比get差一些原创 2017-07-12 20:14:44 · 218 阅读 · 0 评论 -
sort-排序
sort 用于对数组中的元素进行排序 语法: arrayObjct.sort(sortby) 参数 描述 sortby 可选,按规定顺序,必须是函数返回值 对数组的引用,请注意,数组在原数组上进行排序,不生成副本。 说明 如果调用该方法时没有用参数,将按字母顺序对数组中的元素进行排序,说得更精确一点,是按照字符编码的顺序进行排序,要实现这一点,首先应该把数组的元素都转化成字原创 2017-08-01 17:41:22 · 245 阅读 · 0 评论 -
冒泡排序
冒泡排序在面试题中也经常出现 算法过程如下:var arr = [7,3,6,2,22,11,55,43,21];for( var i=0;i<=arr.length-1;i++){ //这里注意要-1,因为最后一项已经是最大的了,没必要在进行比较了。 for( var j=i+1;j<=arr.length;j++){ if(arr[i] >= arr[j]){原创 2017-08-01 18:32:25 · 203 阅读 · 0 评论 -
遍历数组和对象的方法
一般的我们遍历数组是用for遍历的var arr = [2,3,1,5];for( var i=0;i<arr.length;i++){ console.log(arr[i]);}我们可以使用内置的forEach方法: 此方法用于调用数组中的每个元素,并将元素传递给回调函数。 注意:forEach对于空数组是不会执行回调函数的。forEach不能return,map可以,下文有例子。原创 2017-08-02 14:47:41 · 1068 阅读 · 0 评论 -
斐波纳契数列
//斐波纳契数列 是一组这样的数字:0,1,1,2,3,5,8,13,21,34……在数学上,斐波那契数列是以递归的方式定义:f(0) = 0;f(1) = 1;f(n) = f(n-1)+f(n-2);//1 1 2 3 5 8 …… 写法一: function num(n){ if( n==0||n==1){ return n; } if原创 2017-08-05 11:39:33 · 478 阅读 · 0 评论 -
快速排序
我们知道数据结构中有9中排序法: 一般用到的有: 冒泡排序法(前面已经讲过) 快速排序法 思路: 1.找中间值 2.遍历数组,小于中间项的放在左边,大于中间项的放在右边。 3.递归 代码如下:function quickSort(arr){ if(arr.length<=1){ //注意这里 不能写成双等 return arr; } //获取数转载 2017-08-05 10:48:19 · 231 阅读 · 0 评论 -
css样式超出部分省略号
面试题中经常会出现手写代码,我们平时为了方便都是复制和粘贴为主。虽然知道如何运用,但手写还真未必能手写粗来。因此加强手写代码很有必要。css样式超出部分省略号width: 30px;overflow: hidden; //隐藏white-space: nowrap; //不换行text-overflow: ellipsis; //超出部分省略号定义和用法:white-spac...原创 2019-02-16 00:49:02 · 3206 阅读 · 0 评论