只有JS基础扎实的攻城狮,才解得出的“密码”

HTML5学堂-码匠:虽然很不想面对,但是明天,的确是节后工作的开始,今天就一边解密一边“适应”一下代码吧!

Tips:如下的四道题目,是基于几家公司的面试真题进行了改编和优化。

解密热身开始!

如下四题难度递增,建议按照顺序查看。题目的答案位于文章最底部。

热身题目1

热身题目2

热身题目3

热身题目4

在这4道热身题目当中,主要涉及的是无穷(Infinity)、undefined、NaN、布尔值与数字的转换、数字字符串的隐式转换等知识。

以上知识均为前端开发必备的基础JS知识。

上面的太简单?!

感觉上面的题目太easy?那,一起来揭开这个“尘封”已久的秘密吧!

传说距今1800年前,企图灭亡人类,并试图把一切都化为虚无的魔神,大蛇及其爪牙…………

额,Sorry,是早在864,000,000毫秒以前(十天前),这个谜题诞生了!

备注:该题目为HTML5学堂(码匠)设计制作的,并非行内面试题,设计该题目的主要目的有二,其一是希望大家可以利用该问题检测一下自己的JS基础知识掌握情况,其二则是为JS基础知识带来一定的趣味性。

谜题

主要涉及JS方面的基础语法知识,那么,如下的这个题目,到底会打印出什么样的结果呢?(由于代码长度较大,把部分结构标签合并到了同一行,另,以纵向形式显示,请横屏查看!)

Tips:如果在解密过程中,遇到了一些问题,或卡壳,可以参照谜题提示,在后面给出了谜题主要涉及到的JS基础知识。

祝解密愉快!

谜题提示

  • 超过170的大数,阶乘(如上代码为300!)的结果为Infinity(无穷)
  • 当window对象转换为字符串时,为 "[object window]"
  • ~ 和 >>均为位运算,前者表示按位取反,0取反为-1,>>表示二进制下的右移,右移后面是移动的位数(52 >> 2,可以理解为十进制的52除以4,或者理解为110100右移两位编程1101)
  • fromCharCode和charCodeAt,为 ASCII码值 与 字符 互相转换的方法
  • 在函数中使用arguments.callee指向的是函数本身
  • this指向的是函数的所有者

谜题涉及主要知识

这些方法当中,除了少数属于相对“较偏”的知识,大多数都是攻城狮必备的知识和技能!(不同类型已在如下列表中标注)

  • 【必备】JS中Number数字的数值范围
  • 【必备】Infinity进行数学运算时的运算规则
  • 【必备】typeof数据类型检测
  • 【较偏】ASCII码值与字符之间的转换方法
  • 【较偏】位运算(此处涉及按位取反和右移)
  • 【必备】字符串的splice方法
  • 【必备】数组的join、push方法
  • 【必备】DOM操作中,获取标签以及获取标签名字的方法
  • 【必备】this的基本指向
  • 【必备】arguments相关知识

什么?你问有公司会出这种题目吗?

当然………………不会!

没有什么公司会这样变态的!

反正入行五六年,我还没有看到过这么变态的题目……以后要是真有的话,呃…………告他侵权~

怎样?有没有感觉眼前一亮!

什么?没有!!!反而让你眼前一黑?!

好吧,看来我只能用出究极招式了!

热身题目答案揭晓

第一题:26(数字类型)

第二题:224(字符串类型)

第三题:Infinity4(字符串类型)

第四题:6(数字类型)

开开心心每一天

生活艰辛,代码不易,但,不要忘记微笑!

版权声明:该图来自“【美】莉兹·克里莫 (author)”的书籍《你今天真好看》

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2017-10-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非典型技术宅

Quartz2D进行渲染1. 渲染模式2. even-odd rule:奇偶填充规则3. nonzero winding number rule:非零绕数规则4. 其他会用到的渲染模式5. 混合模式

793
来自专栏韩伟的专栏

你真的理解数码技术吗?(二)

1.2 文字是如何用数字来记录的 在人类创造的各种信息当中,文字信息一直被我们认为是知识和智慧的重要载体,古代无数僧侣和学者,终身都献身于书籍文字的保存和传达...

3278
来自专栏北京马哥教育

Python 的正则表达式彩蛋

虽然我觉得在 Python 的标准库里的确有不少很恶心的库,但是 re 库肯定不属于这种。尽管它真的有年头没有更新了,但是在我看来,仍不失为动态语言中最好的库...

2597
来自专栏腾讯社交用户体验设计

带你轻松打开SVG动画的大门 - 腾讯ISUX

802
来自专栏练小习的专栏

带你轻松打开SVG动画的大门

初学SVG的时候,感觉那一坨一坨的代码难读难懂,现在回过头仔细想想,是因为那时候看文档缺少一些具体的实例,导致学习起来很枯燥。如今SVG已经在前端各个领域都有所...

2056
来自专栏Java技术栈

架构师必须掌握的各种编码:ASCII、ISO-8859-1、GB2312...

编码在我们日常开发过程中经常有遇到,常见的编码格式有ASCII、ISO-8859-1、GB2312、GBK、GB18030、UNICODE、UTF-8、UTF-...

2447
来自专栏数据结构与算法

洛谷P3835 【模板】可持久化平衡树

题目背景 本题为题目 普通平衡树 的可持久化加强版。 数据已经经过强化 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对...

3116
来自专栏Thinks

带你轻松打开SVG动画的大门

初学SVG的时候,感觉那一坨一坨的代码难读难懂,现在回过头仔细想想,是因为那时候看文档缺少一些具体的实例,导致学习起来很枯燥。如今SVG已经在前端各个领域都有所...

1042
来自专栏kalifaの日々

POJ3723 《挑战程序设计竞赛》踩坑

我看书上的代码,觉得这一行有错误, //这里为什么要加上女生的人数而不是男生的人数?我认为应该加男生的人数 es[j].v = v+N; 所以我就没这样写,我...

3427
来自专栏owent

不知道是哪一年的腾讯马拉松题目 照片评级 解题报告

结果就一不小心看到了这个充满回忆的ACM模式竞赛,还有咱腾讯的,就忍不住看了一下。

431

扫描关注云+社区