.Net培训个人总结笔记22
学习交流,欢迎转载。转载请注明文章来源:http://www.cnblogs.com/lgjspace/archive/2011/10/12/2218260.html
细节:
若有 var x = 0; 则 (!x) 的值也为 true ,即下面语句会被触发:
1 if(!x) {
2 alert("不X!");
3 }
经验:
1 <script type = "text/script" src = "123.js" ></script> <!--这样写才会有效果-->
2 <script type = "text/script" src = "123.js" /> <!--这样写不会有效果,原因暂时不明。-->
细节:
一旦命名冲突,则以最后一个声明的为准。
细节:
1 <script type = "text/javascript">
2 var arr = new Array();
3 arr[0] = 1; // Array 的数组功能只是其字典功能的一个特例。
4 arr["人"] = 2;
5 arr["口"] = "kou";
6 arr["shou"] = "手";
7 arr[true] = "false"; // Array 的 key 的类型不一定要保持一致,可以在同一个 Array 对象中使用多种不同类型的 key。
8 for (var i in arr) {
9 alert("arr[" + i + "] = " + arr[i] + "\n"); //用类似于 C# 中的 foreach 的形式遍历 Array 实例的时候,定义的 i 是 Array 实例中每个元素的 key,而非 value。
10 }
11 </script>
细节:
1 <script type = "text/javascript">
2 //Array的简化声明方式:
3 var arr1 = [20, "234", "spe", 32, true, "c"]; //数组风格的简化声明,但元素不一定要类型统一。
4 var arr2 = [2, 34, 65, 77, 93, 23];//数组风格的简化声明。
5 var arr0 = { "46": 23, "df": 456, "osdif": "ooooo", 23: false, 2.34: 3.14 };//字典风格的简化声明。
6 //Array的访问方式:
7 alert(arr0.osdif); //像调用属性一样访问Array的值,但前提是key部分不能是数字,且Array的实例名不能为arr(不知道为什么),否则不会显示。
8 alert(arr1[20]);
9 </script>
!!!从以下练习题中得知:js中用for(var * in *) 的遍历方式不能遍历字符串。暂时只知道可以遍历Array。
1 <head>
2 <title>火星文翻译器(网页版)</title>
3 <script type = "text/javascript">
4 var str1 = "啊阿埃挨哎唉哀皑......"; //全局简体中文字库变量
5 var str2 = "啊阿埃挨哎唉哀皚......"; //全局火星文字库变量
6 var dict = new Array();
7 function Add() {
8 for (var i = 0; i < str1.length; i++) {
9 dict[str1[i]] = str2[i];
10 }
11 //alert(dict["碍"]); //这里的打印结果为“礙”,因为此时正在调用着 Add 函数,而且刚刚为 dict 赋值完毕。
12 return dict;
13 }
14 //alert(dict["碍"]);//这里的打印结果为“undefined”,因为此时还没有调用Add函数,dict的值仍然为空。
15 function Translate(str) {
16 // //这种做法有误:原因留意下面注释和对比正误两种过程。
17 // var result = "";
18 // for (var ch in str) {
19 // //alert(ch);//这里打印结果为空,估计是由于用这种方法遍历字符串是不可行的。
20 // var char = str[ch];//错误,由 for 遍历得出的 ch 始终为空,导致这里给 char 设到的值总是为空。
21 // result += dict[char];
22 // }
23 // return result;
24
25 //正确方法:
26 var result = "";
27 for (var i = 0; i < str.length; i++) {
28 result += dict[str[i]];
29 }
30 return result;
31 }
32 var str = "我爱吃西瓜";
33 Add();
34 //alert(dict["碍"]); //这里的打印结果为“礙”,因为此前刚调用完Add函数,为 dict 的赋值操作已经完成,而且 Array 是传递引用,在函数里面的修改操作对在函数外面的 dict 也有效果。
35 alert(Translate(str));
36 </script>
37 </head>
38 <body>
39 ......
40 </body>
41 </html>
细节:
“"\""”这种情况可以用“'"'”来替换,效果一样,还可以省掉转义的步骤。
细节:
用"(window.)location.href"可以获得或更改(即相当于重定向)当前页面的地址。
细节:
html 中 body 所指定的有效范围会受内容而影响,而且每个版本都不一样。
在 IE8 中,当 body 里面没有任何内容时,body 指代的范围就只有白色页面的左上角一小块地方;
在 IE9 中,当 body 里面没有任何内容时,body 指代的范围就为零,即一点位置都没有;当 body 里面有内容的时候,内容到哪里,body 指代的范围就到哪里。
细节:
Dom 中的 window 对象指代的只是当前的页面(如果是 IE8 或以上的话所代表的只是当前的选项卡),并不包括其它的页面(选项卡),即一个页面(选项卡)一个 window 对象。
细节:
使用 window 对象的属性、方法的时候可以省略 window。比如:window.alert("a") 可以省略成 alert("a")。