javascript入門及數據類型
試了下,js腳本除了不能在當前頁面的title標簽中,當前頁面哪都可以放。但是還是規矩的安置為好。
a標簽href屬性放個腳本還是很不錯的。
1 <a href="javascript:alert(‘還能這樣用‘);">點我</a>
當使用如下方法來引入外部的js文件時,script標簽就不能包含任何代碼了
1 <script type="text/javascript" src="./bootstrap.min.js"></script>
使用var聲明變量,變量會在內存中創建一塊空間用於存儲數據。
輸出變量還可以使用console.log( );在控制臺輸入。
document.write()向body裏面寫入內容。document.title()向文檔title部分寫入內容
js數據類型:
1.字符串類型。string 通過單or雙引號定義,引號單雙無區別
1 var vzero = ‘ zero ‘;var vone = "this is variable" + vzero;console.log(vone);
2.數值類型。number 小數,整數都是數值類型
1 <script type="text/javascript"> 2 var str = "hello"; 3 varresult = parseInt(str); //使用parseInt();可以強制轉換為整數型數值 4 console.log(typeof(result)); //number 5 console.log(isNaN(result)); //true 使用isNaN();可以判斷是否不是一個數值 6 </script>
3.布爾類型。通常是用來作為條件判斷,在php中‘0‘,‘[]‘被轉換成false,js中反之。
1 var arr = []; 2 console.log(Boolean(arr)); //true
4.函數類型。變量可以保存函數
1 <script type="text/javascript"> 2 var vone = function(){ 3 } 4 function func(){ 5 } 6 console.log(vone); //function 7 console.log(typeof(func)); //使用function關鍵字定義函數 8 </script>
函數中變量的作用域。在函數外部定義變量就是全局變量,反之局部變量。註意:如果在函數內部聲明變量時,沒有使用var關鍵字,表示變量就是全局變量。當在函數內部訪問一個標量時,會先在函數內部查找,如果沒有找到,則去上一級作用域查找,這個查找的過程稱之為作用域鏈。
1 <script type="text/javascript"> 2 var vone = ‘global‘; 3 function func1(){ 4 console.log(vone); //unsigned 5 var vone = ‘func1‘; 6 console.log(vone); //func1 7 } 8 func1(); 9 </script>
函數的參數。除了形參、實際參數之外,還可以通過arguments對象進行管理,第一個參數保存到arguments數組的第一個元素,第二個參數會保存到arguments數組的第二個參數上,以此類推。
1 <script type="text/javascript"> 2 function Sum(){ 3 console.log(arguments); 4 for (var i = arguments.length - 1; i >= 0; i--) { 5 console.log(arguments[i]); // 7 8 5 1 6 } 7 } 8 Sum(1,5,8,7); 9 </script>
閉包特性。在函數內部嵌套定義函數的時候,內部函數就會將外部函數的變量的最終值包含起來,保存到內存中,有些類似php的靜態變量。
1 <script type="text/javascript"> 2 function func1(){ 3 var v1 = 10; 4 var func2 = function(){ 5 console.log(v1); 6 } 7 v1 = 20; 8 return func2; 9 } 10 var result = func1(); 11 result(); // 20 12 </script>
hint:在函數的外部即可以讀取到函數內部的值。
使用此方法可以解決上述問題:
1 <script type="text/javascript"> 2 function func1(){ 3 var arr = []; 4 for (var i = 3; i > 0; i--) { 5 arr[i] = func2(i); 6 } 7 return arr; 8 } 9 var func2 = function(v){ 10 return v; 11 } 12 var result = func1(); 13 console.log(result[1]); // 1 14 console.log(result[2]); // 2 15 console.log(result[3]); // 3 16 </script>
5.數組類型。使用數組、對象可以保存多個值,可統稱為復合類型的數據。
定義數組有兩種方式:
new Array();、快捷語法[];
1 new Array(‘value1‘,‘value2‘);
註意,在js中不能定義關聯類型的數組。
數組的遍歷 可以通過for循環搭配arr.length遍歷下標得出數據,或者直接使用for in:
1 var arr = [1,2,3,8,7,5]; 2 for (var num in arr){ 3 console.log(arr[num]); 4 }
6.對象類型。數組只能定義索引數組,如果保存一些關聯類型的數據,可以使用對象。
通過構造器創建對象,new object();
1 <script type="text/javascript"> 2 function Snake(){ //構造函數(構造器) 3 this.name = ‘小青‘; //對象成員 4 this.color = ‘green‘; 5 this.eat = function(){ //對象方法 6 console.log(‘吃老鼠‘); 7 } 8 } 9 var result = new Snake(); 10 console.log(typeof(result)); //object 11 alert(result.name); //小青 12 result.eat(); //吃老鼠 13 </script>
通過快捷語法:{}字面量,創建對象
語法格式:
1 var obname = 2 { 3 屬性名:屬性值 4 方法名:function(){} 5 }
通過 new Object()創建對象。
1 <script type="text/javascript"> 2 var obj = new Object(); 3 obj.name = ‘大黃‘; 4 obj.eat = function (){ 5 alert(‘runing‘); 6 } 7 obj.eat(); //runing 8 </script>
訪問對象的成員可以通過點的方式,也可以使用[]語法。
1 <script type="text/javascript"> 2 function Snake(){ //構造函數(構造器) 3 this.name = ‘小青‘; //對象成員 4 this.color = ‘green‘; 5 this.eat = function(){ //對象方法 6 console.log(‘吃老鼠‘); 7 } 8 } 9 var snake = new Snake(); 10 for (var attr in snake){ 11 console.log(snake[attr]); 12 } 13 </script>
7.null類型。指一個空對象的指針,可以理解為空對象的占位符。
1 var obj = null; 2 console.log(typeof(obj));
8.undefined類型。函數沒有返回值,或聲明了變量,但是未初始化值,他就是undefined
1 <script type="text/javascript"> 2 function Snake(){ 3 } 4 console.log(Snake()); 5 var vone; 6 console.log(vone); 7 </script>
javascript入門及數據類型