刚入职新公司,属于公司萌新一枚,一天下午对着屏幕看代码架构时。

BI项目组长给我看了一道面试别人的JS面试题。

虽然答对了,但把理由说错了,照样不及格。

话不多说,直接上题:

var a = 1;
switch (a) {
case 2:
console.log(2)
break;
case 1, 2, 3: // 这里case是对比几呢?
console.log(1)
break;
default:
break;
}
// result:最后什么都不会输出

看完题如果答对并且知道理由的小伙伴,仅当加深印象;如果你也像我一样不明所以,请仔细往下看。

逗号表达式

表达式1,表达式2,表达式3,...... ,表达式n

逗号表达式的要领:

  1. 逗号表达式的运算过程为:从左往右逐个计算表达式
  2. 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值
  3. 逗号运算符的优先级别在所有运算符中最低

有了上述的概念,再回过头来看面试题就很清晰了。

打铁趁热,再来一道题来加深下理解。

var i, j, k;
for (i = 0, j = 0; i < 10, j < 6; i++, j++) {
k = i+j;
}
console.log(k); // result:10

执行步骤如下表

i j k
0 0 0
1 1 2
2 2 4
3 3 6
4 4 8
5 5 10

一直埋头写代码,没用到的知识总是容易忘记,刚好碰到,索性做下笔记加深印象,努力学习知识,仅为装X。

作者:以乐之名

本文原创,有不当的地方欢迎指出。转载请指明出处。

一道JS面试题引发的血案的更多相关文章

  1. 一道python面试题引发的血案

    这里说的是一道阿里校招的面试题:一行代码实现对列表a中的偶数位置的元素进行加3后求和? 今天去面试同样遇到了这个题目,这道题考察的是对python高阶函数map/filter的灵活运用(具体的使用方法 ...

  2. 一道Javascript面试题引发的血案

    文章首发于szhshp的第三边境研究所,转载请注明 先来看几道面试题,公司的开发们都尝试做了一下,然而基本没有人能够全部答对. 覆盖的考点很多,也有一些难度,题目挺有意思建议手动执行一边玩玩. Que ...

  3. new与属性访问的顺序,从一道JS面试题说起

    这段时间一直在研究设计模式,在看工厂模式的时候,看到一段代码 VehicleFactory.prototype.createVehicle = function ( options ) { if( o ...

  4. 一道JS面试题所引发的"血案",透过现象寻本质,再从本质看现象

    觉得本人写的不算很烂的话,可以登录关注一下我的GitHub博客,新手写东西写的不好之处,还望见谅,毕竟水平有限,写东西只为交流提高,一起学习,还望大神多加指点,指出纰漏,和提出宝贵的意见,博客会坚持写 ...

  5. 一道试题引发的血案 int *ptr2=(int *)((int)a+1);

    某日,看到一道比较恶心的C语言的试题,考了很多比较绕的知识点,嘴脸如下: int main(void) { int a[4] = {1, 2, 3, 4}; int *ptr1=(int *)(&am ...

  6. 一道Integer面试题引发的对Integer的探究

    面试题: //在jdk1.5的环境下,有如下4条语句: Integer i01 = 59; int i02 = 59; Integer i03 =Integer.valueOf(59); Intege ...

  7. 一道js面试题看变量的作用域

    [问题]分别求下面程序的输出结果: 1. <script type="text/javascript"> var a = 10; sayHi(); function s ...

  8. 一道js面试题

     当然这道面试题并不一定就能在你面试的时候遇到,但是不怕一万就怕万一,会的多一些还是好的. 问:怎么判断一串字符中哪个字符出现的最多,最多几次或者这串字符分别有哪些,每个字符出现了几次.写你请出运算代 ...

  9. 关于一道JS面试题的思考

    题目: ; i < ; i++) { setTimeout(function() { console.log(new Date, i); }, ); } console.log(new Date ...

随机推荐

  1. Iframe跨域JavaScript自动适应高度

    重点分析: 主域名页面:页面A,页面C 其它域名页面:页面B 步骤: 1.页面A(主域名)通过Iframe(id="iframeB")嵌套页面B(其它域名) 2.页面B(其它域名) ...

  2. Ajax传数据到servlet

    //jsp代码 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" ...

  3. hibernate增删改

    public class HibernateUtils { private static SessionFactory sessionFactory=null; static{ //获取config ...

  4. stm32常识

    cmsis全称Cortex Microcontroller Software Interface Standard,就是Cortex微处理器软件接口标准 stm32每组gpio有7组端口,分别是2个3 ...

  5. Scala_数据结构

    数据结构 容器(Collection) Scala提供了一套丰富的容器(collection)库,包括列表 (List).数组(Array).集合(Set).映射(Map)等 根据容器中元素的组织方式 ...

  6. tarjan算法的补充POJ2533tarjan求度

    做题时又遇到了疑惑,说明一开始就没有完全理解 基于dfs的tarjan,搜索时会有四种边 树枝边:DFS 时经过的边,即 DFS 搜索树上的边 前向边:与 DFS 方向一致,从某个结点指向其某个子孙的 ...

  7. 使用nohup后台执行ftp传输命令

    因为有的时候会需要长时间传输文件,所以想用nohup 结合shell脚本一起使用,就不用一直在电脑面前了 . nohup 用法: nohup command & 然后就会出现 对应的 pid ...

  8. RGB-D 室内导航 paper

    摘要: 最近打算使用Kinect实现机器人的室内导航,收集了近年来的一些比较好的文章.<基于Kinect系统的场景建模与机器人自主导航>.<Mobile Robots Navigat ...

  9. php gettext

      安装gettext: ubuntu: apt-get install php-gettext, apt-get install gettext window:开启扩展 修改locale :$ /u ...

  10. java中int和Integer对比的一些坑

    --------------------- 作者:狂飙的yellowcong 来源:CSDN 原文:https://blog.csdn.net/yelllowcong/article/details/ ...