你能做对下面这些JavaScript的题吗?
你能做对下面这些JavaScript的题吗?
原文
你认为你了解JavaScript? 快速的做一下下面的这些题目。并将下面的每一个表达式的值写出。(答案在问题后面)
1. ++Math.PI
2. (0.1 + 0.2) + 0.3 == 0.1 + (0.2 + 0.3)
3. typeof NaN
4. typeof typeof undefined
5. a = {null:null}; typeof a.null;
6. a = “5”; b = “2”; c = a * b;
7. a = “5”; b = 2; c = a+++b;
8. isNaN(1/null)
9. (16).toString(16)
10.016 * 2
11.~null
12.”ab c”.match(/\b\w\b/)
首先,这不是一个入门教程,因此我不会去对每一个答案做单独的解释,如果你觉得你有不理解的地方,我建议你 while (!掌握()) 专研它();
答案:
1. 4.141592653589793
2. false
3. “number”
4. “string”
5. “object”
6. 10
7. 7
8. false
9. 10
10. 28
11. -1
12. [ “c” ]
我的打分如下(每答对一题一分):
5分 – 7分: 了解javascript
8分 – 10分: 专家
11: 大学士
12分: 大师
简要的注释:
第2题:答案是false,javascript和java非常相似(或则其他使用了IEEE 754浮点数的语言),这也是为什么在和钱打交道的正式应用程序中一般不使用浮点数四则运算的原因,浮点数的加或乘除外,下面这篇文章有关于浮点数四则运算的一个详细的讨论。
第6题:在四则运算表达式中使用乘、除或减,如果表达式中包含一个或多个字符型,那么语法解释器会试着首先将字符型转换为数值型,如果算术表达式包含着加号运算,那么所有的运算项都会被转换成字符型。
第7题:JavaScript中表达式的运算的优先级是从坐到右(类似于Java和C),因此,在这里将会是一个先a计算值,加上b,然后在a++的次序,而不是a加上++b这样的运算。
第9题:toString() 可以带一个可选的数字参数。参数值16意味着基于16进制,返回的字符串将会是该数字的16进制表示,在这个例子里面就是10,如果你写.toString(2)那么你将会得到这个数字的2进制表示,等等。
第10题:016是8进制表示,即8进制的14。虽然是这样,但比较有趣的是,如果有你以”016″(字符串形式)去乘上一个数,语法解释器会认为”016″是基于10进制的数。
如果你不能正确的写出这些题目的答案,不要灰心丧气,因为几乎上面的每一个问题都(明显地)含有着蒙蔽人小伎俩,现在让我问面对它。当然,如果你非常正确的回答了上面的所有问题,你也不必太过沾沾自喜,这意味着这你仅仅是一个比任何正常人都奇怪的javascript怪杰而已!
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
## 需求工作中一直需要用 linux 的命令行管理服务器,在平时的生活中会玩一些游戏,现在有把 linux 的学习资料做成一款游戏的项目吗?这样就可以用平时的玩游戏的时间来学…
目前接手了一个自动化项目,其中有个步骤涉及到手机短信验证码的校验,目前都是人肉接收短信后再手动填入到程序中去,非常麻烦,所以在想这样的一个方案: 1.该号码为专用,平时只会相…
有台联想的主机才买没多久,出厂装的是 win11 家庭中文版系统,一直闲置。我想着装个 CentOS7 充当服务器使用,结果死活搞不定,一进到 U 盘安装界面点击”Intall…