测试你的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 $.ajax各个事件执行顺序
Oct 15 Javascript
基于Jquery的跨域传输数据(JSONP)
Mar 10 Javascript
javascript中的if语句使用介绍
Nov 20 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
JQuery datepicker 用法详解
Dec 25 Javascript
Vue使用vue-cli创建项目
Sep 01 Javascript
webpack引入eslint配置详解
Jan 22 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
详解vue高级特性
Jun 09 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
nodejs使用socket5进行代理请求的实现
2020/02/21 NodeJs
vue.js实现照片放大功能
2020/06/23 Javascript
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Python更换pip源方法过程解析
2020/05/19 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
会计求职信
2014/05/29 职场文书
初级党校心得体会
2014/09/11 职场文书
教师个人年度总结
2015/02/11 职场文书
换届选举主持词
2015/07/03 职场文书
保护环境建议书作文500字
2015/09/14 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
理解深度学习之深度学习简介
2021/04/14 Python