1.?请使用 isNaN() 来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。
<script type="text/javascript"> var a = "abc"; var b = "def"; alert(a == b); // false alert(isNaN(b)) // ture </script>
?
2. == 和 ===
<script type="text/javascript"> var a = '12'; var b = 12; // alert(a == b); // 先把两边的东西转成一样的类型,然后再比较(隐式转换) alert(a === b); // 不转换,直接比较 </script>
?
3. 闭包: 子函数可以使用父函数的局部变量
<script type="text/javascript"> function aaa(){ // 父函数 var a = 12; function bbb(){ // 子函数 alert(a); // 子函数可以使用父函数的局部变量 } } bbb(); </script>
?
?4. 命名规范: 类型前缀
?
5. 真和假
// 真的: true 、非零数字、非空字符串 、非空对象
// 假的: false、数字零、空字符串、空对象、undefeined
?
6. json可以放在数组里,数组也可以放在json里
<script type="text/javascript"> var obj = {a : 5, b : 6, c : 'abc', d : [1, 2, 3, 4]}; // 数组存于json alert(obj.d[0]); var arr = [{a : 5, b : 12},{a: 6, b : 19}]; // json存于数组 alert(arr[0].a); </script>
?
7. for in
<script type="text/javascript"> var obj = {a : 5, b : 3, c : 98}; var attr = ''; for(attr in obj){ alert(attr + '=' + obj[attr]); } </script>
?
8. 不定参数:arguments
<script type="text/javascript"> function sum(){ var iResult = 0; var i = 0; for(i = 0; i < arguments.length; i++){ iResult += arguments[i]; } return iResult; } alert(sum(1, 2, 3, 4)); </script>
?
9. style 和 currentStyle
? ??
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css"> div{ width:200px; } </style> <script type="text/javascript" > window.onload = function(){ var oDiv = document.getElementById("div1"); if(oDiv.currentStyle){ // IE alert(oDiv.currentStyle['width']); alert(oDiv.currentStyle.width); // alert(oDiv.style.width); // 只能获取行间样式 }else{ // Firefox alert(getComputedStyle(oDiv,false).width); // 获取计算后的样式 } } </script> </head> <body> <div id='div1'> </div> </body> </html>
?