只有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 条评论
登录 后参与评论

相关文章

来自专栏C/C++基础

设计模式 (一)——策略模式(Strategy,行为型)

使用设计模式可以提高代码的可复用性、可扩充性和可维护性。策略模式(Strategy Pattern)属于行为型模式,其做法是将类所需的行为或者算法一个个封装成单...

882
来自专栏编程

邪恶的编码魔咒,你中招没?

关键时刻,第一时间送达! 自从我观看了Gary Bernhardt所推崇的视频以后,就对某些编程语言的怪异表现着迷了。一些编程语言比其他语言有更多令人感到意外的...

1757
来自专栏Golang语言社区

Gopher面试中的Coding

从四月份下半月开始,陆陆续续面试了几家公司,都是golang的岗位。每一次面试,侧重点都会有不同,有的会直接给过来一道试题, 然后边解题,边讲述自己的思路,然后...

4497
来自专栏Fish

CCF认证 送货

问题描述   为了增加公司收入,F公司新开设了物流业务。由于F公司在业界的良好口碑,物流业务一开通即受到了消费者的欢迎,物流业务马上遍及了城市的每条街道。然而...

1839
来自专栏大数据挖掘DT机器学习

新手学python 如何求职拿offer?

从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试的公司都是些创业性的公司吧,不过还是感触良多,因为学习Python...

4646
来自专栏菩提树下的杨过

ruby学习笔记(4)-动态修改类的属性

动态语言之所以“动态”,最明显的特征就是:类实例的行为/属性可以在new出后,动态修改!个人觉得这种处理相对java/c#(静态语言)来说,更符合现实世界。 ...

1937
来自专栏写代码的海盗

坐忘峰 golang入坑系列

告别昨日梦,今朝艳阳天。 大道通四方,车影舞翩翩。 不做旁观者,去向应了然。 白云绕远树,飞燕春汛传。 天下万千景,彩绘壮河山。 我辈当努力,敢把宏图展。 迈步...

3275
来自专栏CDA数据分析师

如何拿到半数面试公司Offer——我的Python求职之路

从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试的公司都是些创业性的公司吧,不过还是感触良多,因为学习Python...

2528
来自专栏chafezhou

学习Python,怎能不懂点PEP呢?

作者:豌豆花下猫,某985高校毕业生, 兼具极客思维与人文情怀 。公众号Python猫, 专注python技术、数据科学和深度学习,力图创造一个有趣又有用的学习...

1021
来自专栏数说工作室

庖丁解牛切割数据!| 【SAS Says·扩展篇】

【SAS Says·扩展篇】庖丁解牛割数据! | 3. call PRXSUBSTR () 0. 前集回顾 1. 新的问题 2. 初识 PRXSUBSTR() ...

3296

扫码关注云+社区