测试你的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 进度条 实现代码
Jul 30 Javascript
举例讲解AngularJS中的模块
Jun 17 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
原生js实现手风琴功能(支持横纵向调用)
Jan 13 Javascript
vue v-on监听事件详解
May 17 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
May 23 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
微信小程序传值以及获取值方法的详解
Apr 29 Javascript
vue eslint简要配置教程详解
Jul 26 Javascript
js+springMVC 提交数组数据到后台的实例
Sep 21 Javascript
vue3+typescript实现图片懒加载插件
Oct 26 Javascript
JavaScript 判断浏览器是否是IE
Feb 19 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自动加载机制的深入分析
2013/06/08 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
python基于phantomjs实现导入图片
2016/05/13 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Python交互式图形编程的实现
2019/07/25 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
python制作微博图片爬取工具
2021/01/16 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
文秘求职信范文
2014/04/10 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
车间质检员岗位职责
2015/04/08 职场文书
酒桌上的开场白
2015/06/01 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书