文章目錄
web
JavaScript
概念: 客戶端腳本語言
運行在客戶端瀏覽器中的。每一個瀏覽器都有JavaScript的解析引擎
* 腳本語言:不需要編譯,直接就可以被瀏覽器解析執行了
功能:
可以來增強用戶和html頁面的交互過程,可以來控制html元素,讓頁面有一些動態的效果,增強用戶的體驗。
ECMAScript:客戶端腳本語言的標準
基本語法:
1. 與html結合方式
-
內部JS:
* 定義<script>
,標籤體內容就是js代碼 -
外部JS:
* 定義<script>
,通過src屬性引入外部的js文件- 注意:
<script>
可以定義在html頁面的任何地方。但是定義的位置會影響執行順序。<script>
可以定義多個。
- 注意:
2. 註釋
-
單行註釋://註釋內容
-
多行註釋:/註釋內容/
3. 數據類型:
-
原始數據類型(基本數據類型):
- number:數字。 整數/小數/NaN(not a number 一個不是數字的數字類型)
- string:字符串。 字符串 “abc” “a” ‘abc’
- boolean: true和false
- null:一個對象爲空的佔位符
- undefined:未定義。如果一個變量沒有給初始化值,則會被默認賦值爲undefined
-
引用數據類型:對象
4. 變量
- 變量:一小塊存儲數據的內存空間
-
Java語言是強類型語言,而JavaScript是弱類型語言。
- 強類型:在開闢變量存儲空間時,定義了空間將來存儲的數據的數據類型。只能存儲固定類型的數據
- 弱類型:在開闢變量存儲空間時,不定義空間將來的存儲數據類型,可以存放任意類型的數據。
-
語法:
-
var 變量名 = 初始化值;
-
typeof運算符:獲取變量的類型。
- 注:null運算後得到的是object
-
-
5. 運算符
- 一元運算符:只有一個運算數的運算符
++,-- , +(正號)
++ --: 自增(自減)
++(--) 在前,先自增(自減),再運算
++(--) 在後,先運算,再自增(自減)
+(-):正負號
- 注意:在JS中,如果運算數不是運算符所要求的類型,那麼js引擎會自動的將運算數進行類型轉換
* 其他類型轉number:
* string轉number:按照字面值轉換。如果字面值不是數字,則轉爲NaN(不是數字的數字)
* boolean轉number:true轉爲1,false轉爲0
- 算數運算符
+ - * / % ...
- 賦值運算符
= += -+....
- 比較運算符
> < >= <= == ===(全等於)
- 比較方式
-
類型相同:直接比較
- 字符串:按照字典順序比較。按位逐一比較,直到得出大小爲止。
-
類型不同:先進行類型轉換,再比較
===
:全等於。在比較之前,先判斷類型,如果類型不一樣,則直接返回false
-
- 邏輯運算符
&& || !
- 其他類型轉boolean:
1. number:0或NaN爲假,其他爲真
2. string:除了空字符串(""),其他都是true
3. null&undefined:都是false
4. 對象:所有對象都爲true
- 三元運算符
? : 表達式
var a = 3;
var b = 4;
var c = a > b ? 1:0;
- 語法:
* 表達式? 值1:值2;
* 判斷表達式的值,如果是true則取值1,如果是false則取值2;
JS特殊語法
-
語句以;結尾,如果一行只有一條語句則 ;可以省略 (不建議)
-
變量的定義使用var關鍵字,也可以不使用
* 用: 定義的變量是局部變量
* 不用:定義的變量是全局變量(不建議)
基本對象
1. Function:函數(方法)對象
- 方法創建:
方式一
var fun = new Function(形式參數列表,方法體);
方式二
function 方法名稱(形式參數列表){
方法體
}
方式三
var 方法名 = function(形式參數列表){
方法體
}
-
方法體編碼:
-
屬性:
length:代表形參的個數 -
特點:
1. 方法定義是,形參的類型不用寫,返回值類型也不寫。
2. 方法是一個對象,如果定義名稱相同的方法,會覆蓋
3. 在JS中,方法的調用只與方法的名稱有關,和參數列表無關
4. 在方法聲明中有一個隱藏的內置對象(數組),arguments,封裝所有的實際參數 -
調用:
方法名稱(實際參數列表);
2. Array:數組對象
-
創建:
1.var arr = new Array(元素列表);
2.var arr = new Array(默認長度);
3.var arr = [元素列表];
-
方法
join(參數):將數組中的元素按照指定的分隔符拼接爲字符串
push() 向數組的末尾添加一個或更多元素,並返回新的長度。 -
屬性
length:數組的長度 -
特點:
1. JS中,數組元素的類型可變的。
2. JS中,數組長度可變的。
3. Boolean
4. Date:日期對象
- 創建:
var date = new Date();
- 方法:
toLocaleString():返回當前date對象對應的時間本地字符串格式
getTime():獲取毫秒值。返回當前如期對象描述的時間到1970年1月1日零點的毫秒值差
5. Math:數學對象
-
創建:
* 特點:Math對象不用創建,直接使用。 Math.方法名(); -
方法:
random():返回 0 ~ 1 之間的隨機數。 含0不含1
ceil(x):對數進行上舍入。
floor(x):對數進行下舍入。
round(x):把數四捨五入爲最接近的整數。 -
屬性:
PI
6. Number
7. String
8. RegExp:正則表達式對象
-
正則表達式:定義字符串的組成規則。
-
單個字符:[]
如:[a] [ab] [a-zA-Z0-9_]
* 特殊符號代表特殊含義的單個字符:
\d:單個數字字符 [0-9]
\w:單個單詞字符[a-zA-Z0-9_] -
量詞符號:
?:表示出現0次或1次
*:表示出現0次或多次
+:出現1次或多次
{m,n}:表示 m<= 數量 <= n
* m如果缺省: {,n}:最多n次
* n如果缺省:{m,} 最少m次 -
開始結束符號
* ^:開始
* $:結束
-
-
正則對象:
- 創建
1. var reg = new RegExp(“正則表達式”);
2. var reg = /正則表達式/; - 方法
1. test(參數):驗證指定的字符串是否符合正則定義的規範
- 創建
9. Global
-
特點:全局對象,這個Global中封裝的方法不需要對象就可以直接調用。 方法名();
-
方法:
encodeURI()
:url編碼
decodeURI()
:url解碼
encodeURIComponent()
:url編碼,編碼的字符更多
decodeURIComponent()
:url解碼
parseInt()
:將字符串轉爲數字
* 逐一判斷每一個字符是否是數字,直到不是數字爲止,將前邊數字部分轉爲number
isNaN()
:判斷一個值是否是NaN
* NaN六親不認,連自己都不認。NaN參與的==比較全部問false
eval()
:JavaScript 字符串,並把它作爲腳本代碼來執行。
- URL編碼