测试你的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文件的函数代码分享
Jul 28 Javascript
js获取浏览器的可视区域尺寸的实现代码
Nov 30 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
Jan 23 Javascript
javascript删除html标签函数cIsHTML
Jan 09 Javascript
Vue实现购物车功能
Apr 27 Javascript
基于zepto.js实现手机相册功能
Jul 11 Javascript
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
Apr 16 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
微信小程序停止其他视频播放当前视频的实例代码
Dec 25 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
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
php实现的SESSION类
2014/12/02 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
在vue中使用setInterval的方法示例
2019/04/16 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
荷兰网上鞋店:Ziengs.nl
2017/01/02 全球购物
巴西女装购物网站:Eclectic
2018/04/24 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
出纳会计岗位职责
2014/03/12 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
保护校园环境倡议书
2015/04/28 职场文书
关于运动会的广播稿
2015/08/19 职场文书