测试你的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 相关文章推荐
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
获取body标签的两种方法
Oct 13 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
BootStrap中的Fontawesome 图标
May 25 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 Javascript
ES6的异步操作之promise用法和async函数的具体使用
Dec 06 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设计聊天室步步通
2006/10/09 PHP
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
基于vue2.0实现的级联选择器
2017/06/09 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
用Python shell简化开发
2018/08/08 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
交通事故和解协议书
2014/09/25 职场文书
离职报告格式
2014/11/04 职场文书
学校远程教育工作总结
2015/08/11 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
Python代码风格与编程习惯重要吗?
2021/06/03 Python
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS