测试你的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 相关文章推荐
jQueryUI如何自定义组件实现代码
Nov 14 Javascript
js静态方法与实例方法分析
Jul 04 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 Javascript
JavaScript驾驭网页-CSS与DOM
Mar 24 Javascript
关于JavaScript中事件绑定的方法总结
Oct 26 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
vue中七牛插件使用的实例代码
Jul 28 Javascript
详解Layer弹出层样式
Aug 21 Javascript
详解微信小程序实现WebSocket心跳重连
Jul 31 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
May 10 Javascript
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
用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 获取SWF动画截图示例代码
2014/02/10 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
require.js中的define函数详解
2017/07/10 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
node express使用HTML模板的方法示例
2019/08/22 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
python读取文本中的坐标方法
2018/10/14 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
Python实现简单的2048小游戏
2021/03/01 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
高中毕业生自我鉴定范文
2013/09/26 职场文书
会计实习自我鉴定
2013/12/04 职场文书
中职招生先进个人材料
2014/08/31 职场文书
小学推普周活动总结
2015/05/07 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技