测试你的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代码
Nov 09 Javascript
Javascript valueOf 使用方法
Dec 28 Javascript
javascript 面向对象编程基础 多态
Aug 21 Javascript
jquery实现input输入框实时输入触发事件代码
Jan 28 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
jQuery mobile 移动web(4)
Dec 20 Javascript
JavaScript数据结构与算法之集合(Set)
Jan 29 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
js+canvas绘制图形验证码
Sep 21 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 采集程序 常用函数
2008/12/18 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
javascript引用对象的方法
2007/01/11 Javascript
javascript数组去掉重复
2011/05/12 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
浅谈关于axios和session的一些事
2017/07/13 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
python中执行shell命令的几个方法小结
2014/09/18 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
自主招生自荐信
2013/12/08 职场文书
高校教师思想汇报
2014/01/11 职场文书
幼儿园新年寄语
2014/04/03 职场文书
政府法律服务方案
2014/06/14 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
《法国号》教学反思
2016/02/22 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python