测试你的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源码中的chunker 正则过滤符分析
Jul 31 Javascript
js实现按Ctrl+Enter发送效果
Sep 18 Javascript
创建、调用JavaScript对象的方法集锦
Dec 24 Javascript
js实现仿QQ秀换装效果的方法
Mar 04 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
Dec 12 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
微信小程序 同步请求授权的详解
Aug 04 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
Aug 24 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
Oct 08 Javascript
解决vue keep-alive 数据更新的问题
Sep 21 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
Mar 11 Javascript
VUE.CLI4.0配置多页面入口的实现
Nov 25 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中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
Ajax和javascript的区别
2013/07/20 面试题
毕业生简历自我评价范文
2014/04/09 职场文书
学术诚信承诺书
2014/05/26 职场文书
公司授权委托书范文
2014/09/21 职场文书
大学生村官个人总结
2015/02/15 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书