关于理解JS中typeof和eval函数的代码测试
还是由于最近项目中接触到此类js,不是太了解,所以自行敲入了如下代码,自我进行测试,并了解它们。其中部分代码并非原创,有的是直接拷贝网上的。
?
<script type="text/javascript">
/**
?eval函数接收一个参数s,如果s不是字符串,则直接返回s。js中typeof否则执行s语句。js中typeof
? 如果s语句执行结果是一个值,则返回此值,否则返回undefined
**/
?var query = function() {
??????????? alert("====");
??????? }
??????? var node1 = "query";
??????? var node2 = 8;
??????? var node3;
??????? var MM = "My";
??????? var just = eval(node1);??
??????? alert(just);
??????? alert(eval(node2));?? // 输出 8
??????? alert(eval(node3));?? //输出 undefined??????
??????? alert(eval("MM"));??? //输出 My
??????? var him,tom,jom;
??????? him = "query";
??????? jom = true;
??????? alert(typeof tom == "function"); //输出false,因为此处tom还不是function类型
??????? alert(typeof jom == "boolean");? //输出为true,因为jom为boolean类型
??????? tom = eval(him);?? //eval函数根据参数him为string类型,其值为query,则执行query函数,把query function赋给tom,即tom也是function函数了
??????? alert(typeof (tom));? //输出function? 即输出tom的类型
??????? alert(typeof tom == "function");? //输出true,此处应理解为问tom的类型是否是function类型,为true
??????? alert(tom == "function");?? //输出false,此处应该理解为问tom的值是否为字符串“function”,tom是function函数,值不是字符串,所以为false
??????? alert(typeof (tom == "function")); //输出boolean,因为tom=="function"为false,false为布尔类型,输出false的类型,即boolean
??? </script>
???
??? <script type="text/javascript">
??????? /**
??????? typeof返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,
??????? 包括number,boolean,string,object,undefined,function.语法为typeof(data) 或 typeof data
???
??????? instanceof则为判断一个对象是否为某一数据类型,或一个变量是否为一个对象的实例;返回boolean类型
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33246-1.html
抢来
索罗斯是不是打马云的脸了呢
没人希望战争