美文网首页
如何面试 JS 原理

如何面试 JS 原理

作者: 唯泥Bernie | 来源:发表于2017-05-18 01:12 被阅读212次

先说说最近两件让我有点诚惶诚恐的事情。第一件,是前段时间我花了一点时间去读了一点 ES6 规范。对于第一次读规范的我是比较困难的,因为有很多术语及平时不常见的描述方式。经过几个知识点的阅读,我已经能读得比较顺畅,也掌握了规范层面的原理,我也很有成就感。但是随后当我开始入坑 React-Native 并写 demo 的时候,发生了很不爽的事情,就是我看不懂 demo 报的错误了。因为错误不是 JS 引起的错误,我突然意识到 JS 在这种情况下变成了仅仅是一种 DSL,而我写了这么多年的 JS,看了规范原理在这个时候居然都用不上了。

第二件事情是我看了道 JS 的题目: 用 for 循环给一系列 DOM 元素注册 click 监听函数,每个元素被点击后 alert 循环变量 i。问点击元素后的表现?有一定经验的工程师应该很快能反应过来,这题很常见: 点击所有元素都会 alert 出相同的值( i 最后取值 )。如果要 alert 递增的数字,那么最典型的处理方式是在注册监听函数这段代码外面加个立即执行的函数,把全局变量 i 赋值给闭包中的局部变量即可。那如果用 ES6 如何解决呢?只要用 let 去声明循环变量 i,就能不用闭包来完成我们原有的意图。虽然我知道 let 创建的是局部变量,但是即使每次循环都是一个新创建的 i,那么也解释不通 let 声明的 i 会递增(明明每次循环都是一个新的 i )。然后去扒了规范,原来规范规定这种情况每次循环要把上一次 i 的值赋值给当次新创建的变量 i。那么问题来了,这种情况下并不能用已知的 let 是声明局部变量这个原理去推导出 for 循环的这种表现,只是规范这么规定了这种特殊情况下程序的表现。那其实规范原理的犄角旮旯里有太多的这些内容,我们就都要去学习?对我们平时编程有多大帮助?

回到我们的题目上来,我们面试前端工程师 JS 原理的目的到底是什么?从上面两件事情来看,我觉得面试者对 JS 原理掌握的深度并不与工作有利度产生绝对的正相关。

我们会看到很多面试题涉及到一些刁钻的原理,其实这并不适合来做第一轮的面试,因为做错了既不能证明面试者没有举一反三的学习能力也不能证明面试者没有顺藤摸瓜解决问题的能力。仅仅能证明他没有看过这几个不常用的知识点。而我们第一轮面试的应该是看面试者是否掌握了些通用的,容易踩坑的知识点。因为这直接影响到他写出来的代码的质量。如果基本知识点掌握了,那么我们再去深入的问问这些不太常用的知识点就能侧面的去看这个人是否有的专研精神。

直接上手就用刁钻的原理问题来面试的面试官可能不是想秀优越感,就是对如何考察面试者思路不清了。其实如果抛开面试这个问题,再想想到底什么是前段工程师,我们的着眼点是 JS,HTML,CSS?框架?原理?应该都不是,如果陷入了某种技术,那么就会发生我最一开始遇到的问题: 换一个环境原有的技术可能就失灵了。如何在具体的技术上再拔高一层我也有点困惑,如果以后有感悟我再来总结吧。

最后我想说明下,此篇只是我的感悟,而且我不是反对对原理的专研,而是希望不要为了学原理死抠原理。

相关文章

  • 如何面试 JS 原理

    先说说最近两件让我有点诚惶诚恐的事情。第一件,是前段时间我花了一点时间去读了一点 ES6 规范。对于第一次读规范的...

  • if(xx)和 a==b的判断

    1、if判断 (1)从面试题说说if的数据类型,js如何转换判断 *(2)判断原理: 对于if()里括号的表达式(...

  • 通信网络篇

    1、跨域的原因以及解决方式那天写在了《面试准备之JS篇》442、xss csrf攻击原理那天写在了《面试准备之JS...

  • 小程序底层原理学习笔记

    前言 腾讯的面试会问到小程序的底层原理,公众号开发的js-sdk也会问,js-sdk本质就是 jsBridge ,...

  • JS引擎是如何工作的?从调用堆栈到Promise

    摘要: 理解 JS 引擎运行原理。 作者:前端小智 原文:JS引擎:它们是如何工作的?从调用堆栈到Promise,...

  • betterScroll.js 封装下拉刷新、上拉加载组件(踩坑

    betterScroll.js 原理 betterScroll.js 滚动原理。 -- betterScroll...

  • 简单实现react双向绑定

    在看Vue.js文档的时候,看到深入响应式原理这一节时,顺便想了想如何模仿Vue.js的双向绑定原理来实现reac...

  • Javascript

    JS基础 《Javascript原理、方法与实践》 《JS原理、方法与实践》- Javascript简介 《JS原...

  • NT 技术周刊-1014

    React Native通讯原理[原创] 摘要 � 深入React Native源码,分析JS与Native如何实...

  • 跨域问题

    如何解决跨域问题 JSONP: 原理是:动态插入script标签,通过script标签引入一个js文件,这个js文...

网友评论

      本文标题:如何面试 JS 原理

      本文链接:https://www.haomeiwen.com/subject/nlijxxtx.html