测试你的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 相关文章推荐
js调用flash的效果代码
Apr 26 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
Jul 01 Javascript
javascript JSON操作入门实例
Apr 16 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
js登录弹出层特效
Mar 07 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
微信小程序 动态绑定事件并实现事件修改样式
Apr 13 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
node.js-v6新版安装具体步骤(分享)
Sep 06 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
Feb 10 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
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python实现购物车购物小程序
2018/04/18 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
python for 循环获取index索引的方法
2019/02/01 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
大四毕业生学习总结的自我评价
2013/10/31 职场文书
房地产还款计划书
2014/01/10 职场文书
高中体育教学反思
2014/01/24 职场文书
新闻发布会策划方案
2014/06/12 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
女生抽烟检讨书
2014/10/05 职场文书