测试你的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 相关文章推荐
jquery 简单图片导航插件jquery.imgNav.js
Mar 17 Javascript
javascript动态加载三
Aug 22 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
理解javascript回调函数
Dec 28 Javascript
JS实现控制表格单元格垂直对齐的方法
Mar 30 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
解决bootstrap-select 动态加载数据不显示的问题
Aug 10 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
Aug 20 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 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
javascript动态加载三
2012/08/22 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
tornado捕获和处理404错误的方法
2014/02/26 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
详解Python中的type()方法的使用
2015/05/21 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
Python给图像添加噪声具体操作
2019/03/03 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
浅谈Python 参数与变量
2020/06/20 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
技术人员面试提纲
2013/11/28 职场文书
运动会广播稿200字
2014/10/18 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
会计岗位工作总结
2015/08/12 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
世界十大狙击步枪排行榜
2022/03/20 杂记