eval的使用:
<script> /*eval的作用: * 1.将字符串当成js代码来执行 * 2.可以将json格式的字符串转换为js对象*/ /*eval("var age = 30;"); console.log(age); eval("alert(123)"); var va = eval("1+1"); console.log(va);*/ //({"name":"rose","age":20}); //{"name":"rose","age":20} var jsonStr = '{"name":"rose","age":20}'; /*在系统进行解析的时候,{}首先会被当成代码块的标志来解析,如果不是代码块就会当成字面量的标志来解析*/ var obj = eval("("+jsonStr+")"); console.log(obj); </script>
arguments的使用:
<script> function calculate(){ console.log(arguments); console.log(calculate.arguments); /*==比较值 *arguments是伪数组,而伪数组是对象 *valueOf: 获取地址值进行比较*/ console.log(calculate.arguments === arguments); /*计算传入的数值的值*/ /*arguments:函数内部的成员,在函数内部可以直接使用到这个属性,它是一个伪数组*/ var sum = 0; for (var i = 0; i < arguments.length; i++) { var num = arguments[i]; sum += num; } return sum; } var result = window.calculate(1,2,432,53,456,57,6); console.log(result); </script>
异常处理:
<script> function test(callback){ callback(); } function te(){ console.log(123); te(); } /*计算两个数的和*/ function calculate(a,b){ try{ if(typeof a != "number" || typeof b != "number"){ /*拖动抛出异常*/ throw {'msg':'请输入数值'}; } console.log( a + b); } catch (e){ console.log(e); } console.log('继续执行其它操作'); } calculate("A","b"); /*try{尝试执行的代码--有可能会出错} catch{如果有错,就捕获异常}*/ try { /*死循环并不会报错*/ /*while(1){ console.log(1); }*/ /*死递归会报错*/ calculate("a","b"); } catch (e){ console.log(e); } finally { /*这里面的代码无论是否有异常都会执行*/ console.log('这句代码无论如何都需要执行'); } </script>