這些東西都非常基礎,一看就懂的,有些函數的功能需要記憶下來。最近基本上吧《Javascript DOM編程藝術》看完了,關於Jquery的知識有很多不懂得地方,慢慢琢磨吧。由於沒有源檔案有一個綜合執行個體沒有做成,有的可以發給我一下,謝謝哈boychik.pure@gmail.com
今天是基礎知識,後面會繼續更新。慢慢深入,大家一起進步,終究會有成功的那一天。盡請期待:)
1.javascript的組成部分
- ECMAscript----主要用來瀏覽器解析,例如,定義一個變數,函數----瀏覽器幾乎都相容
- BOM(browser object model)----瀏覽器物件模型,針對瀏覽器的操作,例如快顯視窗,行動瀏覽器的位置,列印等等----幾乎不相容,不過用的也比較少。
- DOM(document object model)----文件物件模型,操作頁面的功能,例如擷取文檔的div,class,添加元素等----大部分都相容
2.變數類型
- number
- string
- boolean
- object
- function
- undefined
- 建議:一個變數只儲存一個類型的資料
3.對象(js裡一切都是對象)
基本類型:number,string,boolean,undefined他們都很單純,都簡簡單單的(這些不是對象)
複合類型:object,數組array,日期對象date,複合類型由一些基本類型複合而成,包括了一些雜七雜八的東西。
4.資料類型轉換----顯示轉換/隱式轉換
1 <script> 2 window.onload=function () 3 { 4 var oTxt1=document.getElementById('txt1'); 5 var oTxt2=document.getElementById('txt2'); 6 var oBtn=document.getElementById('btn1'); 7 8 oBtn.onclick=function () 9 {10 alert(parseInt(oTxt1.value)+parseInt(oTxt2.value));11 };12 };13 </script>14 </head>15 16 <body>17 <input id="txt1" type="text" />18 <input id="txt2" type="text" />19 <input id="btn1" type="button" value="求和" />20 </body>
最佳化後,如果輸入的不是數值,會提示。
1 <script> 2 window.onload=function () 3 { 4 var oTxt1=document.getElementById('txt1'); 5 var oTxt2=document.getElementById('txt2'); 6 var oBtn=document.getElementById('btn1'); 7 8 oBtn.onclick=function () 9 {10 var num=parseInt(oTxt1.value)+parseInt(oTxt2.value);11 12 if(isNaN(num))13 {14 alert('您輸入的有誤');15 }16 else17 {18 alert(num);19 }20 };21 };22 </script>
如果在文字框輸入不同的兩個數字,例如2和3,那麼按鈕的單擊事件會彈出23,而不是5,因為文字框裡面的東西預設的就是字串而不是數值型的資料。這裡使用parseInt函數可以轉化字串的類型。
1 <script>2 var a='13ab';3 alert(parseInt(a));4 </script>
準確的說,parseInt函數是提取前面的數字,如果遇到字串就不會繼續往後面去值了。
1 <script>2 var a='ab';3 alert(parseInt(a));4 </script>
如果是這樣的話,會出現NaN (not a number),也就是不是一個數位意思。
1 <script>2 var a='12.6';3 alert(parseInt(a));4 </script>
如果是這樣的話,會彈出12這個數字,後面的小數點直接省略了。
1 <script>2 var a='12.6';3 alert(parseFloat(a));4 </script>
parseInt的兄弟parseFloat函數。
NaN(這是個神奇的東西,他和自己也不相等,可能在某種程度上有區別吧)
JavaScript 以 NaN 的形式輸出 Number.NaN。請注意,NaN 與其他數值進行比較的結果總是不相等的,包括它自身在內。因此,不能與 Number.NaN 比較來檢測一個值是不是數字,而只能調用 isNaN() 來比較。
1 <script>2 var a=parseInt('ab');3 var b=parseInt('ab');4 alert(a==b);5 </script>
1 <script>2 var a=parseInt('ab');3 var b=parseInt('ab');4 alert(a==b);5 </script>
這兩個的結果都是flase.以上都是屬於顯示轉換。
隱式轉換:
1 <script>2 var a='2';3 var b=2;4 alert(a==b);5 </script>
運行結果是true。這就是一個隱式轉換的例子,他會把兩邊的資料類型進行比較然後相加。
1 <script>2 var a='2';3 var b='2';4 alert(a-b);5 </script>
如果是減號那麼結果是0,如果是加號結果就是22;你懂得應該。只有加法不能轉化,乘除減法都可以。
關於===
全等就是不僅要內容相等,而且類型也要相等。
5.變數範圍
- 全域變數---是魔鬼==!
- 全域變數的存在主要有以下一些原因:1,使用全域變數會佔用更多的記憶體(因為其生命期長),不過在電腦配置很高的今天,這個不成為什麼問題,除非使用的是巨大對象的全域變數,能避免就一定要避免。2,使用全域變數程式運行時速度更快一些(因為記憶體不需要再分配),同樣現在也快不了多少。3,對於局部變數的名字空間汙染,這個在不使用太多變數時是可以避免的。4,當全域變數與局部變數重名的時候,起作用的是局部變數,全域變數被屏蔽掉。總之,全域變數可以使用,但是全域變數使用時應注意的是儘可能使其名字易於理解,而且不能太短,避免名字空間的汙染;避免使用巨大對象的全域變數。(這一段摘自百度百科)
- 局部變數---閉包
這裡比較好理解就不解釋了。閉包的知識細節還有很多,今天先到這吧,洗澡睡覺,晚安~