<script type="text/javascript" > /* // 第一部分 // 变量的声明 块注释里面可以写单行注释,不能嵌套写块注释 var msg // 这样写如果压缩js会造成错误,养成写分号的写法。 msg = "hello"; // 推荐方式 msg = 100;// 不推荐改变其类型,混乱 alert(msg==undefined); if(asfd="a"+"b"){ // 字符串相加后付给asdf,对于一个没声明的变量一旦赋值过就变成了全局变量 // 但是这么写会导致对象的状态很乱,因为一旦没有调用赋值而直接调用将导致报错, // 不推荐,对于赋值在if永远返回true alert(asfd+" 赋值定义全局变量"); } if("abc"){ alert("abc 非空字符串会返回true"); // 字符串会自动转换成变量 } var boo = Boolean("chinese"); if(boo){ alert("字符串转换Boolean变量");// 手动的转换成Boolean变量 } alert(typeof john +" typeof不会对未声明的报错");// */ //第二部分 var car = null; alert(typeof car); alert(typeof null); alert(null==undefined);// 返回true undefined继承自null function test(){ ddd = ""; var test1= "";// 这里的局部变量为了测试没有var 生成全局变量的内存,调试用, var test2= "";// 这里的局部变量为了测试没有var 生成全局变量的内存,调试用 } </script> <input type="button" value="测试" οnclick="test();" />
监控内存用FF的FireBug 工具,查看监控。
在调试的过程中一步一步看this与this同级的是局部变量,this展开里面是全局变量。通过调试查看对象的生命周期。
浮点型的运算可能会出现很多问题。如0.1+0.2!=0.3
这个是基于IEEE754 书序的浮点计算,则不仅是Javascript存在的,很多语言都存在。然后数字却没有这样的问题。所以消除这样的问题可以先转换成整数,做一些操作,操作主要做两件事情1 转成成整数运算 2 在转变成所要的浮点数 3 约束浮点数的小数点位数(这个可以写一个公共方法来做)。
如0.1+0.01 得到浮点数我们可以这么做 判断出小数点位数最多为2为,所以要用100 来出来。
那么 0.1+0.01 的处理为 (0.1*100+0.01*100)/100 这样就可以得到0.11 。