测试你的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中实现命名空间
Nov 23 Javascript
node.js中的fs.fsyncSync方法使用说明
Dec 15 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
Bootstrap选项卡与Masonry插件的完美结合
Jul 06 Javascript
Node.js 日志处理模块log4js
Aug 28 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
让微信小程序支持ES6中Promise特性的方法详解
Jun 13 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
js实现图片懒加载效果
Jul 17 Javascript
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
JS实现公告上线滚动效果
Jan 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
PHP 文件缓存的性能测试
2010/04/25 PHP
php Calender(日历)代码分享
2014/01/03 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
简单的Python抓taobao图片爬虫
2014/10/26 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
python解析含有重复key的json方法
2019/01/22 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
html5开发之viewport使用
2013/10/17 HTML / CSS
荷兰超市:DEEN
2018/03/14 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
学校远程教育工作总结
2015/08/11 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python