博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
撩课-Web大前端每天5道面试题-Day37
阅读量:5978 次
发布时间:2019-06-20

本文共 2030 字,大约阅读时间需要 6 分钟。

1.描述一下React 生命周期?

渲染过程调用到的生命周期函数,主要几个要知道; * constructor * getInitialState * getDefaultProps * componentWillMount * render * componentDidMount 更新过程 * componentWillReceiveProps * shouldComponentUpdate * componentWillUpdate * render * componentDidUpdate 卸载过程 componentWillUnmount复制代码

2.实现组件有哪些方式?

React.createClass 使用API来定义组件 React ES6 class component 用 ES6 的class 来定义组件 Functional stateless component 通过函数定义无状态组件复制代码

3.shouldComponentUpdate函数有什么作用?

shouldComponentUpdate是一个允许我们自行决定某些组件(以及他们的子组件)是否进行更新的生命周期函数,reconciliation的最终目的是尽可能以最有效的方式去根据新的state更新UI,如果你已经知道UI的哪些状态无需进行改变,就没必要去让React去判断它是否该改变。让shouldComponentUpdate返回falss, React就会让当前的组件和其子组件保持不变。复制代码

4.手写数组快速排序

快速排序”的思想很简单,整个排序过程只需要三步:(1)在数据集之中,选择一个元素作为”基准”(pivot)。(2)所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。(3)对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。 代码:  var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); var pivot = arr.splice(pivotIndex, 1)[0]; var left = []; var right = []; for (var i = 0; i < arr.length; i++){    if (arr[i] < pivot) {      left.push(arr[i]);    } else {      right.push(arr[i]);    }  }  return quickSort(left).concat([pivot], quickSort(right));};复制代码

5.判断一个字符串中出现次数最多的字符,并统计次数?

var str = 'shdshdfjkfjfdgjkjdksgjskdjfsfsfsfjksjkfdkjf' var arr = str.split('').sort()//把字符串变为数组,在排序                         str = arr.join('') //把排序好的数组,变为字符串 var count = 0  //不能使用undefined,转化为数字是NaN var char = 0 var reg = /(\w)\1+/g                        str.replace(reg,function(parent,son){                                        if(parent.length >count){              count = parent.length              char = son      }                                    }) console.log("最多的字符为:"+char+";个数为:"+count)          拓展:replace方法: replace语法: replace(reg,function(parent,son1,son2,index){ 第一个参数:匹配成功的子字符串(parent) 第二个参数:第一个分组内容;(son)  第三个参数:第二个分组内容;(son2) ... 最后一个为开始的下标 })           使用replace()基本方法 var data = '2019-1-8' var reg = /-/g var data = data.replace(reg,'.') console.log(data)  //2019.1.复制代码

转载地址:http://jgpox.baihongyu.com/

你可能感兴趣的文章
继续C#开发or转做产品
查看>>
python学习day-8 迭代器 生成器 装饰器
查看>>
git config配置文件
查看>>
vue2.0小示例一个~~新鲜出炉哦。欢迎大家留言
查看>>
cocos中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)
查看>>
ASP.NET MVC 学习6、学习使用Code First Migrations功能,把Model的更新同步到DB中
查看>>
kaptcha图形验证码组件
查看>>
android系统release签名
查看>>
我是怎么通过技术白手起家创业 续2
查看>>
java mail发送邮件
查看>>
摘要:ASP.NET的路由
查看>>
LeetCode - Palindrome Number
查看>>
bzoj 2763: [JLOI2011]飞行路线
查看>>
css实现文本超出两行隐藏
查看>>
jQuery实现enter键登录
查看>>
bitmap文件格式分析
查看>>
HTML Clipboard Format [MSDN资料]
查看>>
UVA - 10859 Placing Lampposts 放置街灯
查看>>
前端模块管理器命令:npm & bower
查看>>
上课总结
查看>>