1.JS簡介
2.JS三種引入方式
外部引用法
內部引用法
元素屬性引用
3.JS語法基礎
數據類型
特殊運算符
數據類型轉換
對象的創建與使用
4.JS函數
函數定義
函數調用
隱形參數
5.常用內置對象
字符串對象
數組對象
時間對象
數學對象
1.JS簡介
2.JS三種引入方式
2.1外部引用法(推薦)
外部JavaScript,指的是把HTML代碼和JavaScript代碼單獨放在不同文件中,然後在HTML文檔中使用“script標籤”來引入JavaScript代碼
當一個script標籤作爲一個引入外部文件的標籤那麼就不能再在標籤裏邊寫js語句
2.2內部引用法
內部JavaScript,指的是把HTML代碼和JavaScript代碼放在同一個文件中。
2.3元素屬性引用
元素屬性引用,指的是在元素的“事件屬性”中直接編寫JavaScript或調用函數。
3.JS語法基礎
3.1變量
給變量取名字我們必須注意
1 . 變量由字母、下劃線、$或數字組成,並且第一個字母必須是字母、下劃線或 $;
2. 變量不能是系統關鍵字和保留字
3.1數據類型
- 數字類型(number):這裏是不區分整形和浮點型的
- 字符串(string):可用單引號,也可用雙引號。單引號包含的字符串中能含有雙引號,但是不能含有單引號。同樣的雙引號包含的字符串中能含有單引號,但是不能含雙引號。因爲js是無法判斷哪兩個引號是一對
- 布爾值(boolean):只有兩個值true和false
- 未定義值:我們雖然定義一個變量,但是沒有賦值那麼這個變量就變成未定義值了,用undefined表示
- 空值:null表示沒給這個變量分配內存空間
引用數據類型下面會講,還有一個特殊值NaN
表示非數字,看下面的例子
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200620122213946.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzM3MDY4,size_16,color_FFFFFF,t_70
3.2特殊運算符
符號 | 作用 |
---|---|
== | 判斷是否相等(表面) |
=== | 判斷是否相等(本質) |
怎麼理解呢,看下面代碼
運算符 | 返回值 |
---|---|
&& |
1.當表達式全爲真的時候返回最後一個表達式的值。2.當表達式有一個爲假時返回第一個爲假的表達式 |
|| |
1.當表達式全爲假時,返回第一個爲假的表達式。2.只有一個表達式爲真就會返回第一個爲真的表達式 |
3.3數據類型的轉換
將字符串轉換成數字
方法 | 作用 |
---|---|
Number() | 把字符串轉換成數字(只能是純數字式字符串如"123") |
parseInt() | 對字符串從左到右遍歷如果第一個字符是數字(或者+ -)就繼續判斷,直到非數字出現(小數點也是非數字),如果第一個字符不是數字(或者+ -)則返回NaN |
parseFloat() | 對字符串從左到右依次遍歷如果第一個字符是數字(或者+ -)就繼續判斷,直到出現非數字和小數點爲止,如果第一個字符不是數字(或者+ -)則返回NaN |
數字轉換成字符串
方法 | 作用 |
---|---|
數字和空字符串相加 | 把數字轉換成字符串 |
toString() | 直接把數字轉換成字符串 |
3.4對象的創建和使用
1.創建對象的兩種方式:
4.函數
4.1函數的兩種定義方式
1.第一種2.第二種
4.2函數的四種調用方式
- 直接調用
- 在表達式中調用
- 在超鏈接中調用
- 在事件中調用
超鏈接調用例子:
在事件中調用的例子:
注意在js中函數是不允許重載的只能覆蓋
4.3函數的隱形參數
我們看一個例子:
雖然我們的函數裏邊只有兩個參數,但是我們調用的時候可以傳遞很多參數,那是因爲js裏邊默認吧參數規劃到一個隱形的數組中(arguments),我們不管傳進去多少參數,都會存在這裏邊。這就是js的隱形參數
5.常用內置對象
5.1字符串對象String
常用函數 | 作用 |
---|---|
字符串名.length | 獲取字符串長度 |
字符串名.toUpperCase() | 把字符串全部轉換成大寫 |
字符串名.toLowerCase() | 把字符串全部轉換成小寫 |
字符串名.chatAt(n) | 獲取某一個字符 |
字符串名.substring(start,end) | 截取字符串左閉右開,即包含start索引不包含end索引 |
字符串名.replace(原字符串,替換字符串) | 替換指定字符串(如果原字符串有多個那麼只會替換第一個) |
字符串名.replace(正則表達式,替換字符串) | 替換指定字符串(不管原字符串有多少,全部替換) |
字符串名.split(“分割符”) | 分割字符串(下面有例子) |
字符串名.indexOf(指定字符串) | 返回首次出現指定字符串的索引下標否則返回-1 |
字符串名.lastIndexOf(指定字符串) | 返回最後一次出現指定字符串的索引下標否則返回-1 |
對於字符串名.split("分割符")
,例子1:
例子2:
例子3:
其實字符串名.split(參數1,參數2)
可以有兩個參數,參數1代表分隔符,參數2代表分割之後的前n個元素,例子4
5.2數組對象
JS的數組是可以存放不同數據類型的元素的,如下:
常用函數
數組名.length | 數組長度 |
數組名.slice(start,end) | 截取數組部分內容,同樣是左開右閉 |
數組名.slice(start) | 截取從索引start開始的所有元素 |
數組名.unshift(元素1,元素2,元素3…) | 在數組開頭添加新的元素 |
數組名.push(元素1,元素2,元素3…) | 在數組尾部添加新的元素 |
數組名.shift() | 刪除數組中的第一個元素 |
數組名.pop() | 刪除數組最後一個元素 |
數組名.sort(函數名) | 排序(詳細會在下面的例子中講) |
數組名.reverse() | 顛倒數組順序 |
數組名.join() | 將數組元素連接成字符串 |
數組名.slice(start,end)
:截取數組例子:
數組名.sort(函數名)
:函數名是定義某種排序規則,例子:
數組名.join()
將數組元素連接成字符串,默認的join函數是以,作爲連接符,當然連接符也就可以自定義,如下:
例1:
例2:
使用unshift(),push(),shift(),pop()四個方法都會獲得一個新的數組
5.3時間對象
對象常用方法 | 說明 |
---|---|
getFullYear() | 獲取年份,取值爲四位數字 |
getMonth() | 獲取月份取值爲0(1月份)~11(12月份)之間的整數 |
getDate() | 獲取日數,取值爲0~31 |
getHours() | 獲取小時數,取值爲0~23 |
getMinutes() | 獲取分鐘數,取值爲0~59的整數 |
getSeconds() | 獲取秒數,取值爲0~59 |
setFullYear() | 可設置年月日 |
setMonth() | 可設置日月 |
setDate() | 可設置日 |
setHours() | 可設置時分秒毫秒 |
setMinutes() | 分秒毫秒 |
setSeconds() | 設置秒毫秒 |
getday() | 獲取星期幾 |
1.操作年月日
2.操作時分秒
>我們在設置年月日時分秒的時候,比如setHours(12,10,30)
其實後兩個參數(設置分秒是可選的,但是第一個參數小時是必選的)
3.獲取星期幾
0表示星期日,1表示星期1…6表示星期6
5.數學對象
數學對象的屬性
Math.屬性:
屬性 | 說明 |
---|---|
PI | 圓周率 |
LN2 | 2的自然對數 |
LN10 | 10的自然對數 |
LOG2E | 以2爲低的e的對數 |
LOG10E | 以10爲低的e的對數 |
SORT2 | 2的平方根 |
SORT1_2 | 2的平方根的倒數 |
Math.方法: