一嫩码、概述與作用
JavaScript(簡稱“JS”) 是一種解釋型或即時編譯型的編程語言蜻牢。
它是一門腳本語言(開發(fā)Web頁面的語言)。
- 作用:
1亚茬、驗證數(shù)據(jù)
2酪耳、加強用戶體驗
3、增加互動
二刹缝、使用
1碗暗、使用的分類
(1)行內(nèi)(標簽內(nèi))
元素上使用js代碼
(2)內(nèi)部(html內(nèi)任何外置)
html內(nèi)部定義script標簽對,標簽對中定義js代碼
(3)外部(head標簽內(nèi)外連js文件)
外部定義js文件,文件中定義js代碼,在使用的html中使用script標簽對用來引入
2、使用問題
(1)使用位置:
1)任意位置
2)推薦使用位置:
- head中梢夯,便于后期維護(head中配合window.onload使用言疗,確保加載完成)。
- body結束前颂砸,頁面所以內(nèi)容加載完成之后噪奄。
(2)使用注意:
- 一個script標簽不能及用來引入外部js文件,又用來定義js代碼
三死姚、JavaScript數(shù)據(jù)類型
1、基本數(shù)據(jù)類型
(1)Number(控制臺中顯示藍色)
1)Number:表示整數(shù),小數(shù)
2)NaN :表示(not a number)
- 1.賦值NaN
- 2.運算無法計算正確的結果
(2)String(控制臺中顯示黑色)
- 字符串要定義在一對引號當中,''|""都可以
(3)Boolean
- true | false
(4)Null 類型
- 1.賦值
- 2.獲取不到元素
(5)Undefined (指 未定義 的類型)
- 1.賦值
- 2.只聲明不賦值存在默認值
2勤篮、復合數(shù)據(jù)類型和函數(shù)類型
(1)對象類型(Object)
- 對象中的內(nèi)容都是以鍵值對的形式存在的:key:value
- 多個鍵值對之間使用個逗號進行分隔
- 最后一個鍵值對后面不需要添加逗號
- key屬性名,滿足標識符的命名規(guī)范
- key和value其實都是字符串
- key如果滿足標識符的命名規(guī)范,前后引號可以省略
(2)函數(shù)類型(方法)
四都毒、類型轉(zhuǎn)換
1、顯示類型轉(zhuǎn)換:
通過其他方式或函數(shù),手動讓數(shù)據(jù)改變其類型(注意:js中對象類型和函數(shù)類型不參與類型轉(zhuǎn))
- 任意類型都可以轉(zhuǎn)換以下三種類型
String(數(shù)據(jù))
Number(數(shù)據(jù))
Boolean(數(shù)據(jù))
2碰缔、隱式類型轉(zhuǎn)換
目的不是為改變數(shù)據(jù)的類型,但是執(zhí)行過程中會隱式改變類型(+ - * / ..)
五账劲、運算符
1丁眼、+ 運算符
字符串的連接符使用
2晨汹、= == === 之間的區(qū)別:
- = 賦值
- == 比較數(shù)據(jù)是否相同
- === 比較數(shù)據(jù)和類型是否都相等(先比較類型,后比值)
3蚁孔、恶耽!運算符
! 非 取反
!! 不變
!!!取反
4象浑、邏輯運算符: && ||
- java中邏輯運算符兩邊的操作數(shù)必須為boolean類型的
- js中中邏輯運算符兩邊的操作數(shù)可以都是boolean,也可以有其他類型的數(shù)據(jù)參與,如果有, 結果肯定為其中一個操作數(shù)
(1)&& 一個為false就是false
第一個操作數(shù)轉(zhuǎn)為boolean,為false,結果就為第一個操作數(shù)的值為true,,結果就為第二個操作數(shù)的值
(2)|| 一個為true就是true
第一個操作數(shù)轉(zhuǎn)為boolean,為true,結果就為第一個操作數(shù)的值為false,結果就為第二個操作數(shù)的值
5榴捡、{} 塊
- java中{}自成作用域
- js中塊不是作用域,作用域在js中之間函數(shù)function
六克懊、數(shù)組與數(shù)組方法
1秸妥、數(shù)組
(1)數(shù)組的屬性
- 可以存儲任意個任意類型的數(shù)據(jù),長度可變
- 數(shù)組有序: 索引順序 從0開始
- 根據(jù)索引操作數(shù)組,當索引非0~n的整數(shù),作為數(shù)組的自定義屬性
(2)創(chuàng)建數(shù)組的方式:
- new Array(); 構建一個空的新數(shù)組
- new Array(數(shù)據(jù)1,數(shù)據(jù)2..) 創(chuàng)建的同時賦值
- [數(shù)據(jù)1,數(shù)據(jù)2...] 字面量的創(chuàng)建方式 --推薦
(3)數(shù)組的遍歷:
- 1.普通for
- 2.for .. in
- 3.foreach
2统捶、數(shù)組常用方法
(1)slice 截扔苈(切片數(shù)組,原數(shù)組不發(fā)生變化)
- 一個參數(shù) 作為起始索引,從參數(shù)索引位置開始,截取到最后,返回
- 兩個參數(shù) 第一個參數(shù)作為其實索引,第二個參數(shù)結束索引,結束索引不包含
(2)splice 剪接數(shù)組(原數(shù)組變化喘鸟,可以實現(xiàn)前后刪除效果 )
- 一個參數(shù) 作為起始索引,從參數(shù)索引位置開始,截取到最后,返回,原數(shù)組為截取后剩下的
- 兩個參數(shù) 第一個參數(shù)作為其實索引,第二個參數(shù)作為個數(shù)
- 3~n個參數(shù) 重第一個參數(shù)位置開始,拿第二個參數(shù)個,替換成為第三個參數(shù)及以后的數(shù)據(jù)
七匆绣、函數(shù)及注意事項
1、函數(shù)
1)函數(shù)聲明
function 函數(shù)名 (參數(shù)列表) {
函數(shù)體;
[return 返回值;]
}
2)函數(shù)調(diào)用:
- 函數(shù)名(實參);
- 轉(zhuǎn)換函數(shù)表達式,在最后添加()自執(zhí)行(在函數(shù)聲明的前面添加~|!|+|-什黑,在函數(shù)聲明天后添加()包裹)
2)函數(shù)表達式的方式
var 變量名 = function 函數(shù)名 (參數(shù)列表) {
函數(shù)體;
[return 返回值;]
};
函數(shù)名一般省略,不可以通過函數(shù)進行調(diào)用,只能通過變量名,函數(shù)名可以在函數(shù)內(nèi)部進行遞歸使用
2)函數(shù)表達式的調(diào)用:
- 1.通過變量名調(diào)用 變量名(參數(shù));
- 2.函數(shù)表達式最后添加(),直接直接這個函數(shù),自執(zhí)行
注意:參數(shù)省略var關鍵字
(2)函數(shù)的注意事項
函數(shù)的作用域提升:只有函數(shù)聲明的方式才有函數(shù)作用域的提升,函數(shù)表達式?jīng)]有,提升到當前作用域的最上面
若函數(shù)形參同名(一般不會這么做)崎淳,在使用時以最后一個值為準。
函數(shù)的參數(shù)可以定義默認值
-
值傳遞
var num = 12; function change(n) { n = 30; } change(12); console.log('值傳遞-----' + num); //12
引用傳遞