加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Javascript面试的完美指南(开发者视角)

发布时间:2019-02-22 02:08:20 所属栏目:建站 来源:前端小智
导读:为了说明 JS 面试的复杂性,首先,请尝试给出以下结果: onsole.log(2.0==2==newBoolean(true)==1) 十有八九的会给出false, 其实运行结果是true,原因请看 这里。 1) 理解 JS 函数 函数是 JavaScript 的精华,是 JS 一等公民。JS 函数不仅仅是一个普通的

创建正则表达式,有如下两种方式:

  1. var re = /ar/;  
  2. var re = new RegExp('ar');  

上面的正则表达式是与给定字符串集匹配的表达式。定义正则表达式之后,我们可以尝试匹配并查看匹配的字符串。可以使用 exec 函数匹配字符串:

  1. re.exec("car"); // returns ["ar", index: 1, input: "car"]  
  2. re.exec("cab"); // returns null  

有一些特殊的字符类允许我们编写复杂的正则表达式。RegEx 中有许多类型的元素,其中一些如下:

  • 字符正则:w-字母数字, d- 数字, D- 没有数字
  • 字符类正则:[x-y] x-y区间, [^x] 没有x
  • 数量正则:+ 至少一个、? 没或多个、* 多个
  • 边界正则,^ 开始、$ 结尾

例子如下:

  1. /* Character class */ 
  2.  
  3. var re1 = /[AEIOU]/; 
  4. re1.exec("Oval"); // returns ["O", index: 0, input: "Oval"] 
  5. re1.exec("2456"); // null 
  6. var re2 = /[1-9]/; 
  7. re2.exec('mp4'); // returns ["4", index: 2, input: "mp4"] 
  8.  
  9. /* Characters */ 
  10.  
  11. var re4 = /dDw/; 
  12. re4.exec('1232W2sdf'); // returns ["2W2", index: 3, input: "1232W2sdf"] 
  13. re4.exec('W3q'); // returns null 
  14.  
  15. /* Boundaries */ 
  16.  
  17. var re5 = /^dDw/; 
  18. re5.exec('2W34'); // returns ["2W3", index: 0, input: "2W34"] 
  19. re5.exec('W34567'); // returns null 
  20. var re6 = /^[0-9]{5}-[0-9]{5}-[0-9]{5}$/; 
  21. re6.exec('23451-45242-99078'); // returns ["23451-45242-99078", index: 0, input: "23451-45242-99078"] 
  22. re6.exec('23451-abcd-efgh-ijkl'); // returns null 
  23.  
  24. /* Quantifiers */ 
  25.  
  26. var re7 = /d+D+$/; 
  27. re7.exec('2abcd'); // returns ["2abcd", index: 0, input: "2abcd"] 
  28. re7.exec('23'); // returns null 
  29. re7.exec('2abcd3'); // returns null 
  30. var re8 = /<([w]+).*>(.*?)</1>/; 
  31. re8.exec('<p>Hello JS developer</p>'); //returns  ["<p>Hello JS developer</p>", "p", "Hello JS developer", index: 0, input: "<p>Hello JS developer</p>"]  

除了 exec 之外,还有其他函数,即 match、search 和 replace,可以使用正则表达式在另一个字符串中查找字符串,但是这些函数在字符串本身上使用。

  1. "2345-678r9".match(/[a-z A-Z]/); // returns ["r", index: 8, input: "2345-678r9"]  
  2. "2345-678r9".replace(/[a-z A-Z]/, ""); // returns 2345-6789  

Regex 是一个重要的主题,开发人员应该理解它,以便轻松解决复杂的问题。

9)理解 map、reduce 和 filter

函数式编程是当今的一个热门讨论话题。许多编程语言都在新版本中包含了函数概念,比如 lambdas(例如:Java >7)。在 JavaScrip t中,函数式编程结构的支持已经存在很长时间了。我们需要深入学习三个主要函数。数学函数接受一些输入和返回输出。纯函数都是给定的输入返回相同的输出。我们现在讨论的函数也满足纯度。

map

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读