1. 程式人生 > >JavaScript學習筆記(上)

JavaScript學習筆記(上)

JavaSpcript(上)

JavaSpcript是基於物件和事件驅動的指令碼語言,也是非嚴謹性語音。主要應用在客戶端。
JavaSpcript與Html相結合的方式:
1、將JavaScript程式碼封裝到<script>標籤

  < script type="text/javascript" >
  ...
  </script>

2、將 JavaSpcript程式碼封裝到js檔案中,並通過<script>中的src屬性進行匯入

< script type="text/javascript" src="">

注意:如果<script>標籤中使用src屬性,那麼該標籤中封裝的 JavaSpcript程式碼不會被執行。所以通常匯入js檔案都是用單獨<script>來完成

語法
通常高階程式設計語言所包含的語法內容:
1、關鍵字:該種語言中被賦予了特殊含義的單詞。
2、識別符號:用於標識資料跟表示式的符號。通常可以理解為在程式中自定義的名稱。如變數名,函式名。
3、註釋:註解說明解釋程式,用於除錯程式
4、變數:用於標識記憶體中一片空間。用於儲存資料,該空間中的資料是可以變化的。當資料不確定時用變數。
5、運算子:可以讓資料進行運算的符號。
6、語句:用於對程式的執行流程進行控制的表示式。
7、函式:用於對功能程式碼進行封裝,便於提高複用性。
8、陣列:對多資料進行儲存,便於操作,也就是容器。
9、物件:只要是基於物件或者面向物件的語音,就存在物件的概念,物件就是一個封裝體。既可以封裝資料又可以封裝函式。

  • js中定義變數
    關鍵字:var(注意,單引號和雙引號均為字串,可互相巢狀
var x=3;
  • 算術運算子細節:
    “12”+1 = 121
    “12”-1 = 11
    true + 1 = 2
    js中 false就是0或null,否則為 true(預設為 1)
  • 邏輯運算子細節(!、&&、||)
    &與&&:&顯示的是0或1、&&顯示false或true
  • 位運算子(&、|、^)
  • 小細節:
    1、undefined:未定義,其實就是一個常量
    2、獲取具體值的型別,可以通過typeof()來完成
  • 選擇語句(switch)
    無論default與case位置如何,總是先執行第一個case,最後執行default。
  • 將資料直接寫在當前頁中
    使用文件物件:document,其有若干內建方法
    例:
    document.write("<font color='red'>x="+x+"</font><br/>);

或:

 document.write("<font color='red'>");
 document.write("x="+x+"<br/>");
 document.write("</font>");
  • 陣列
    特點:
    1、長度是可變的,不存在越界。
    2、元素的型別是任意的
    js中的陣列定義的兩種方式
    1、var arr = []; 
 		var arr = [1,2,3];
 	2、使用js中的Array物件來完成定義。
 	var arr = new Array(); //var arr = [];
 	var arr = new Arraay(5); //陣列定義並長度是5
 	var arr = new Array(5,6,7); //定義一個數組,元素是5,6,7。
  • 字典
    var map = {
    		1:"xiaoqiang",name:"zhangsan"
    	}
    	//使用
    	1、map["name"];
    	2、map[1];
    	3、map.name;(鍵為數字時不可用)
  • 函式
    1、一般函式
    格式:
    function 函式名(形式引數(不用寫型別)...)
    {
    	執行語句;
    	return 返回值;
    }

注意:
1)呼叫有引數的函式,但沒有給其傳值,函式一樣可以執行;或者呼叫沒有引數的函式,給其傳值,該函式也可以執行。只要寫了函式名後面跟了一對小括號,該函式就會執行.
2)函式中有一個數組在對傳入的引數進行儲存,這個陣列是arguments,因此傳入多引數時也能執行
3)
var sum=getSum();getSum函式執行,並將結果賦值給sum
var sum = getSum;getSum本身是一個函式名,而函式本身在js中是一個物件。getSum就是這個函式物件的引用。將getSum這個引用的地址賦值給sum,這時sum也指向了這個函式物件。相當於這個函式物件有兩個函式名。若列印函式名,則會將該函式物件的字串形式打印出來。

2、動態函式
使用的是js中內建的一個物件Function。引數列表和函式體都是通過字串動態指定的

var add=new Function("x,y","var sum;sum=x+y; return sum;);
var sum = add(4,8);

3、匿名函式
沒有名字的函式,通常是函式的簡寫形式。

var add = function (a,b){
	return a+b;
}

注意:當陣列變數以實參的方式傳入函式,並被函式所改變,則該變數也會隨著改變

  • 全域性和區域性變數
    -全域性變數
    如果在當前標籤下定義了一個變數,即使是在for迴圈內定義,其在該指令碼頁面內均有效。
    -區域性變數
    在函式內定義的變數僅在函式內部有效