javascript 基礎篇 隨課筆記
!DOCTYPE HTML>
<html>
<head>
<meta name="content-type" content="text/html; charset=utf-8">
<title> 基礎視頻 </title>
<script type="text/javascript" language="javascript">
window.onload=function()
{
var oTxt1=document.getElementByID(‘txt1‘);
var oTxt2=document.getElementByID(‘txt2‘);
var oBtn=document.getElementByID(‘btn1‘);
oBtn.onclick=function()
{
alert(parseInt(oTxt1.value)+parseInt(oTxt2.value));
}
}
var a=12;
alert(typeof a);
</script>
</head>
<body>
我們是好朋友
<input id="txt1" type="text" />
<input id="txt2" type="text" />
<input id="btn1" type="button" value="求和" />
</body>
</html>
居然調試不過。專心找問題ING。。。。
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 else 17 { 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,當全局變量與局部變量重名的時候,起作用的是局部變量,全局變量被屏蔽掉。 總之,全局變量可以使用,但是全局變量使用時應註意的是盡可能使其名字易於理解,而且不能太短,避免名字空間的汙染;避免使用巨大對象的全局變量。(這一段摘自百度百科)
- 局部變量---閉包
這裏比較好理解就不解釋了。閉包的知識細節還有很多,今天先到這吧,洗澡睡覺,晚安~
-
1 <script> 2 function aa(){ //父函數 3 var a=1; 4 function bb(){ //子函數,可以啃老。 5 alert(a); 6 }; 7 bb(); 8 }; 9 aa(); 10 </script>
javascript 基礎篇 隨課筆記