web學習--JavaScript(1)

web

JavaScript

概念: 客戶端腳本語言

運行在客戶端瀏覽器中的。每一個瀏覽器都有JavaScript的解析引擎
* 腳本語言:不需要編譯,直接就可以被瀏覽器解析執行了

功能:

可以來增強用戶和html頁面的交互過程,可以來控制html元素,讓頁面有一些動態的效果,增強用戶的體驗。

ECMAScript:客戶端腳本語言的標準

基本語法:

1. 與html結合方式

  1. 內部JS:
    * 定義<script>,標籤體內容就是js代碼

  2. 外部JS:
    * 定義<script>,通過src屬性引入外部的js文件

    • 注意:
      1. <script>可以定義在html頁面的任何地方。但是定義的位置會影響執行順序
      2. <script>可以定義多個。

2. 註釋

  1. 單行註釋://註釋內容

  2. 多行註釋:/註釋內容/

3. 數據類型:

  1. 原始數據類型(基本數據類型):

    1. number:數字。 整數/小數/NaN(not a number 一個不是數字的數字類型)
    2. string:字符串。 字符串 “abc” “a” ‘abc’
    3. boolean: true和false
    4. null:一個對象爲空的佔位符
    5. undefined:未定義。如果一個變量沒有給初始化值,則會被默認賦值爲undefined
  2. 引用數據類型:對象

4. 變量

  • 變量:一小塊存儲數據的內存空間
    • Java語言是強類型語言,而JavaScript是弱類型語言。

      • 強類型:在開闢變量存儲空間時,定義了空間將來存儲的數據的數據類型。只能存儲固定類型的數據
      • 弱類型:在開闢變量存儲空間時,不定義空間將來的存儲數據類型,可以存放任意類型的數據。
    • 語法:

      • var 變量名 = 初始化值;

      • typeof運算符:獲取變量的類型。

        • 注:null運算後得到的是object

5. 運算符

  1. 一元運算符:只有一個運算數的運算符
++,-- , +(正號)  
++ --: 自增(自減)
++(--) 在前,先自增(自減),再運算
++(--) 在後,先運算,再自增(自減)
+(-):正負號
  • 注意:在JS中,如果運算數不是運算符所要求的類型,那麼js引擎會自動的將運算數進行類型轉換
    * 其他類型轉number:
    * string轉number:按照字面值轉換。如果字面值不是數字,則轉爲NaN(不是數字的數字)
    * boolean轉number:true轉爲1,false轉爲0
  1. 算數運算符
+  - * / % ...
  1. 賦值運算符
= += -+....
  1. 比較運算符
> < >= <= == ===(全等於)
  • 比較方式
    1. 類型相同:直接比較

      • 字符串:按照字典順序比較。按位逐一比較,直到得出大小爲止。
    2. 類型不同:先進行類型轉換,再比較

      • ===:全等於。在比較之前,先判斷類型,如果類型不一樣,則直接返回false
  1. 邏輯運算符
&& || !
  • 其他類型轉boolean:
    1. number:0或NaN爲假,其他爲真
    2. string:除了空字符串(""),其他都是true
    3. null&undefined:都是false
    4. 對象:所有對象都爲true
  1. 三元運算符
? : 表達式
var a = 3;
var b = 4;
			
var c = a > b ? 1:0;
  • 語法:
    * 表達式? 值1:值2;
    * 判斷表達式的值,如果是true則取值1,如果是false則取值2;

JS特殊語法

  1. 語句以;結尾,如果一行只有一條語句則 ;可以省略 (不建議)

  2. 變量的定義使用var關鍵字,也可以不使用
    * 用: 定義的變量是局部變量
    * 不用:定義的變量是全局變量(不建議)

基本對象

1. Function:函數(方法)對象

  1. 方法創建:
    方式一
var fun = new Function(形式參數列表,方法體); 

方式二

function 方法名稱(形式參數列表){
	方法體
}

方式三

var 方法名 = function(形式參數列表){
	方法體
}
  1. 方法體編碼:

  2. 屬性:
    length:代表形參的個數

  3. 特點:
    1. 方法定義是,形參的類型不用寫,返回值類型也不寫。
    2. 方法是一個對象,如果定義名稱相同的方法,會覆蓋
    3. 在JS中,方法的調用只與方法的名稱有關,和參數列表無關
    4. 在方法聲明中有一個隱藏的內置對象(數組),arguments,封裝所有的實際參數

  4. 調用:
    方法名稱(實際參數列表);

2. Array:數組對象

  1. 創建:
    1. var arr = new Array(元素列表);
    2. var arr = new Array(默認長度);
    3. var arr = [元素列表];

  2. 方法
    join(參數):將數組中的元素按照指定的分隔符拼接爲字符串
    push() 向數組的末尾添加一個或更多元素,並返回新的長度。

  3. 屬性
    length:數組的長度

  4. 特點:
    1. JS中,數組元素的類型可變的
    2. JS中,數組長度可變的。

3. Boolean

4. Date:日期對象

  1. 創建:

var date = new Date();

  1. 方法:
    toLocaleString():返回當前date對象對應的時間本地字符串格式
    getTime():獲取毫秒值。返回當前如期對象描述的時間到1970年1月1日零點的毫秒值差

5. Math:數學對象

  1. 創建:
    * 特點:Math對象不用創建,直接使用。 Math.方法名();

  2. 方法:
    random():返回 0 ~ 1 之間的隨機數。 含0不含1
    ceil(x):對數進行上舍入。
    floor(x):對數進行下舍入。
    round(x):把數四捨五入爲最接近的整數。

  3. 屬性:
    PI

6. Number

7. String

8. RegExp:正則表達式對象

  1. 正則表達式:定義字符串的組成規則。

    1. 單個字符:[]
      如: [a] [ab] [a-zA-Z0-9_]
      * 特殊符號代表特殊含義的單個字符:
      \d:單個數字字符 [0-9]
      \w:單個單詞字符[a-zA-Z0-9_]

    2. 量詞符號:
      ?:表示出現0次或1次
      *:表示出現0次或多次
      +:出現1次或多次
      {m,n}:表示 m<= 數量 <= n
      * m如果缺省: {,n}:最多n次
      * n如果缺省:{m,} 最少m次

    3. 開始結束符號
      * ^:開始
      * $:結束

  2. 正則對象:

    1. 創建
      1. var reg = new RegExp(“正則表達式”);
      2. var reg = /正則表達式/;
    2. 方法
      1. test(參數):驗證指定的字符串是否符合正則定義的規範

9. Global

  1. 特點:全局對象,這個Global中封裝的方法不需要對象就可以直接調用。 方法名();

  2. 方法:

encodeURI():url編碼
decodeURI():url解碼

encodeURIComponent():url編碼,編碼的字符更多
decodeURIComponent():url解碼

parseInt():將字符串轉爲數字
* 逐一判斷每一個字符是否是數字,直到不是數字爲止,將前邊數字部分轉爲number

isNaN():判斷一個值是否是NaN
* NaN六親不認,連自己都不認。NaN參與的==比較全部問false

eval():JavaScript 字符串,並把它作爲腳本代碼來執行。

  1. URL編碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章