前端资料汇总
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。
首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。
更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。
不用正则表达式,直接一个循环多简单啊,不熟悉正则的我真是吃了爱情的亏
一个案例
如何把一串整数转换成千位分隔形式,例如10000000000,转换成10,000,000,000。
在了解正则表达式之前,想要实现这个功能,无论代码量还是烧脑程度,都很令人抓狂,但若是运用正则表达式来解决的话,两三行代码即可搞定!匹配、替换那些符合某种规则的字符串,恰恰是正则表达式的强项。
正则表达式
#####概念
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。它不仅仅是Javascript独有的东西,绝大多数主流操作系统、主流开发语言、无数的应用软件中,都可以看到正则表达式的优美舞姿。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
#####特点
-
灵活性、逻辑性、功能性非常强
-
可以迅速地用极简单的方式达到字符串的复杂控制。
-
对于刚接触的人来说,比较晦涩难懂。
本文只是通过解决上述案例进而讨论Javascript所支持的正则表达式的部分常用且重要的方法,想查询Javascript中正则表达式的全部强大功能,请点击此处JavaScript RegExp 对象,查看W3school官方文档。
梳理思路
要先明白的是,我们将要转换成的数字格式是这样:从个位往左数起,每三位前插入一个千位分隔符,
,即可以想象成我们要把每三位数字前面的那个空""
匹配出来,并替换成千位分隔符,
。每个千位分隔符后面的数字个数是3个或3的倍数个。
代码书写
创建一个正则表达式字面量,并加上全局匹配修饰符g。var reg = //g;
W3C对全局匹配的解释是:查找所有匹配而非在找到第一个匹配后停止。
因为需要从右往左匹配,所以表示结尾的$
是必须要有的。三位数字用\d{3}
来表示,由于我们不知道究竟有多少组这样的三位数字,所以需要在\d{3}
后面加上+
,来表示匹配任何包含至少一组三位数字的字符串。至目前,/(\d{3})+$/g
表示作为结尾的3个或3的倍数个数字。
由于要替换的是每三位数(从末尾起)紧前面的那个""
,所以需要用到正向预查,即?=n
(匹配任何其后紧接指定字符串 n 的字符串)。正向预查咋用呢?这里先举个例子:有一个字符串var str = "abaaaaa";
,我们想把后面跟着字符b的字符a表示出来,于是正则表达式写法:var reg = /a(?=b)/g;
,匹配的是后面紧跟着字符b
的字符a
,字符串str
中只有一个符合条件的a
,最后查看匹配结果为[“a”]。这个例子的代码如下:
var str = “abaaaaa”,
reg = /a(?=b)/g;
console.log(str.match(reg));
复制代码
粗略了解正向预查之后,回到原来的案例,我们可以写成/(?=(\d{3})+$)/g;
,为什么(?=...)
前面什么也不写呀?因为我们要找的是那些后面紧跟着三位数字的""
呀,空当然什么都不用写了。我们来检验一下,是不是匹配出来三个""
?
var str = “10000000000”,
reg = /(?=(\d{3})+$)/g;
console.log(str.match(reg));
复制代码
结果如下,果然是三个""
。
下面我们对这三个空进行替换:
var str = “10000000000”,
reg = /(?=(\d{3})+$)/g;
console.log(str.replace(reg, “,”));
复制代码
结果如下,转换成功。
最后
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。