当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 测试你的JS的掌握程度的代码

Javascript
javascript中的有名函数和无名函数
javascript[js]获取url参数的代码
javascript select 之间传值效果的代码
js正则实现的密码框简单制作,还可以替换成自己想用得符号
脚本控制自适应高度的缩短问题
兼容ie和firefox版本的js反选 全选 多选框
javascript 随机数 与高级应用 附vbscript(asp) 随机数总结
不用确认即可打印的javascript代码
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
用javascript实现div可编辑的常见方法
用JavaScript实现的一个IP地址输入框
用javascript取得传递参数的个数的代码
当鼠标移出灰色区域时候,菜单项怎么隐藏起来
才发现的超链接js导致网页中GIF动画停止的解决方法
javascript window.onerror事件学习新收获
javascript 如何生成不重复的随机数
超个性的导航效果
不能再简单的无闪刷新验证码原理很简单
经常用到的javascript验证函数收集
用js实现手把手教你月入万刀(转贴)

Javascript 中的 测试你的JS的掌握程度的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 337 ::
收藏到网摘: n/a

先不讲文章的主题是什么,大家先来做做这些题目,看你能做对多少。这也是反映了你对JS基础知识的掌握程度!
复制代码 代码如下:

<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==""他们的值 又是什么呢?
在末尾我在给大家留个问题:&和&& 他们之间又有什么区别呢?