测试你的JS的掌握程度的代码


Posted in Javascript onDecember 09, 2009
<script type="text/javascript"> 
function doTest(s) { 
document.writeln(s + " : " + eval(s) + "<br />"); 
} 
doTest("null==undefined"); //1: 
doTest('null==""'); //2: 
doTest('null==0'); //3: 
doTest('0==""'); //4: 
doTest('false==0'); //5: 
doTest('false==""'); //6: 
doTest('true==0'); //7: 
doTest('true==1'); //8: 
doTest('true==-1'); //9: 
doTest('false==null'); //10: 
doTest(''); //11: 
doTest('false==undefined'); //12: 
doTest('-0===+0'); //13: 
doTest('-0==+0'); //14: 
doTest('-(-0)===0'); //15: 
doTest('false===(!true)'); //16: 
doTest('typeof(null)'); //17: 
doTest('typeof(false)'); //18: 
doTest('typeof(undefined)'); //19: 
doTest('typeof(1)'); //20: 
doTest('typeof(+1.1)'); //21: 
</script>

怎么样?自己给自己打下分,总共22个题目,你对了多少个呢?
这些题目我也不知道应该去讲解,只是想让大家对自己做错的题目进行更深一步的思考、挖掘。
下面我们来公布答案吧:

代码

<script type="text/javascript"> 
function doTest(s) { 
document.writeln(s + " : " + eval(s) + "<br />"); 
} 
doTest("null==undefined"); //1:null==undefined : true 
doTest('null==""'); //2: null=="" : false 
doTest('null==0'); //3: null==0 : false 
doTest('0==""'); //4: 0=="" : true 
doTest('false==0'); //5:false==0 : true 
doTest('false==""'); //6: false=="" : true 
doTest('true==0'); //7:true==0 : false 
doTest('true==1'); //8:true==1 : true 
doTest('true==-1'); //9: true==-1 : false 
doTest('false==null'); //10:false==null : false 
doTest(''); //11: : undefined 
doTest('false==undefined'); //12:false==undefined : false 
doTest('-0===+0'); //13:-0===+0 : true 
doTest('-0==+0'); //14:-0==+0 : true 
doTest('-(-0)===0'); //15:-(-0)===0 : true 
doTest('false===(!true)'); //16:false===(!true) : true 
doTest('typeof(null)'); //17:typeof(null) : object 
doTest('typeof(false)'); //18:typeof(false) : boolean 
doTest('typeof(undefined)'); //19:typeof(undefined) : undefined 
doTest('typeof(1)'); //20:typeof(1) : number 
doTest('typeof(+1.1)'); //21:typeof(+1.1) : number 
</script>

给大家留下一个问题:3||6&&9的运算结果是什么?
具体的分析可以看这里:&&和||运算
内容如下:
一直以为 && 和 || 这两个运算符只能在判断表达式时使用,一般就是常在if语句使用。前段时间在公司的磨刀行动的考核题目中,完全做错了。由于对这两个运算符不是很理解,只是简单的认为是一个判断表达式。当时考试的题目:3||6&&9的运算结果是什么?我居然写的是true!
今天在博客园里看到了对这两个讲解,认为很多人在这里还是存在误区的。所以也把他记了下来。
我们先不看答案,先来对&& 和 || 的理解。我记得在以前的计算机书上看到过这两个运算符,他们的优先级是:&&大于|| 。那&&又是怎么运算的呢?
exp1&&exp2:如果执行exp1后返回true,则执行exp2并返回exp2的值;如果执行exp1后返回false,则整个表达式返回exp1的值,exp2不执行;
exp1 || exp2:如果执行exp1后返回true,则整个表达式返回exp1的值,exp2不执行;如果执行exp1后返回false,则执行exp2并返回exp2的值;
那下面我们来看答案吧:
3||6&&9:先运算&&,由于6和9都大于0,即都为true,所以结果为 9。表达式变为3||9。由于3和9 都为true,则返回3。所以答案就是3。
由上面我又延伸几个问题:false==0,true==0,false==null,false==undefined,false==""他们的值 又是什么呢?
在末尾我在给大家留个问题:&和&& 他们之间又有什么区别呢?
Javascript 相关文章推荐
Javascript在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
Mar 30 Javascript
AngularJS压缩JS技巧分析
Nov 08 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
vue分类筛选filter方法简单实例
Mar 30 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
9102年webpack4搭建vue项目的方法步骤
Feb 20 Javascript
vue实现点击追加选中样式效果
Nov 01 Javascript
js实现从右往左匀速显示图片(无缝轮播)
Jun 29 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 #Javascript
jMessageBox 基于jQuery的窗口插件
Dec 09 #Javascript
jQuery 开天辟地入门篇一
Dec 09 #Javascript
jquery tablesorter.js 支持中文表格排序改进
Dec 09 #Javascript
jquery 事件执行检测代码
Dec 09 #Javascript
为指定元素增加样式的js代码
Dec 09 #Javascript
javascript setTimeout和setInterval 的区别
Dec 08 #Javascript
You might like
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP crc32()函数讲解
2019/02/14 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
详解supervisor使用教程
2017/11/21 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
Python封装原理与实现方法详解
2018/08/28 Python
使用tensorflow实现线性回归
2018/09/08 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
python如何停止递归
2020/09/09 Python
浅析Python中字符串的intern机制
2020/10/03 Python
Python内置函数及功能简介汇总
2020/10/13 Python
Collection和Collections的区别
2016/05/02 面试题
英语专业毕业生自荐信
2013/10/28 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
物理教学随笔感言
2014/02/22 职场文书
学历公证书范本
2014/04/09 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
Sql Server之数据类型详解
2022/02/28 SQL Server