前端面试贴集锦

面试前翻笔记,经常是那种「看过就忘、忘了再搜」的碎片。这篇把当时记下的几个 JavaScript 小点拢在一起,不求全面,适合考前半小时过一遍。每类下面一句话说明它在考什么。

正则对象

导语: 字面量写法和分号位置,面试爱出「这行代码会不会报错」的题。

  1. var obj=/ /; 创建正则对象;若为 var obj=/ /; 即赋值被注释掉,及运行被结束;

注意第二个分号会把整行变成注释,正则根本没创建成功。这类题考的是对 JS 语法细节的敏感度,不是让你背复杂正则。

数字输入校验

导语: 表单里「只能输入非负整数」是经典场景,写法要严谨。

  1. 只能输入零和非零开头的数字,正确的正则表达式是,^(0|[1-9][0-9]*)$

0 单独合法;0100 这类前导零要排除,所以非零开头用 [1-9][0-9]*。别写成 ^\d+$,那样 007 也会过。

this 的绑定规则

导语: this 不看函数定义在哪,只看怎么调用,执行时才确定。

this的行为有时候会显得极其诡异,让人感到困惑,但只需要记住 this的值要等到代码真正执行时才能确定

同时 this 的值具体有以下几种情况:

  1. new 调用时指的是被构造的对象

  2. call、apply 调用,指向我们指定的对象

  3. 对象调用,如执行 obj.b(),this 指向 obj

  4. 默认的,指向全局变量 window(浏览器环境,相当于执行 window.fun()

复习时可以自己写四个小例子,分别跑一遍,比背四条规则记得牢。箭头函数没有自己的 this,那是另一套规则,这篇先不展开。


以上都是当年面试前随手记的,现在看有的表述不够严谨,但核心考点没变。遇到拿不准的,打开控制台跑一下,比死记硬背靠谱。

版权声明: 本文首发于 指尖魔法屋-前端面试贴集锦https://blog.thinkmoon.cn/post/315-notes-javascript/) 转载或引用必须申明原指尖魔法屋来源及源地址!