测试你的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 07 Javascript
使用typeof判断function是否存在于上下文
Aug 14 Javascript
JQuery跳出each循环的方法
Apr 16 Javascript
js实时获取并显示当前时间的方法
Jul 31 Javascript
js继承实现方法详解
Dec 16 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
vue插件实现v-model功能
Sep 10 Javascript
详解vue-cli3多环境打包配置
Mar 28 Javascript
JavaScript实现背景自动切换小案例
Sep 27 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 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 工厂模式使用方法
2010/05/18 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python获取任意xml节点值的方法
2015/05/05 Python
python中的错误处理
2016/04/10 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
python字符串判断密码强弱
2020/03/18 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Django中使用Celery的方法步骤
2020/12/07 Python
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
公务员培的训心得体会
2014/09/01 职场文书
法务专员岗位职责
2015/02/14 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
python创建字典及相关管理操作
2022/04/13 Python