一篇文章帶你入門Java Script
目錄
- 概述
- 特點
- 和的區別
- 弱型別語言
- 強型別語言
- 書寫位置
- 陣列
- 函式
- 中的自定義物件(擴充套件內容)
- Object形式的自定義物件
- JS中的事件
- 常用的事件:
- 動態註冊基本步驟:
- DOM模型
- 總結
概述
是目前web開發中不可缺少的語言,js不需要編譯即可執行,執行在客戶端,需要通過瀏覽器來解析執行JavaScript程式碼。
JS組成部分:
組成部分 | 作用 |
---|---|
ECMA Script | 構成了JS核心的語法基礎 |
BOM | Browser Object Model 瀏覽器物件模型,用來操作瀏覽器上的物件 |
Dom | Document Object 文件物件模型,用來操作中的元素 |
特點
1.互動性(它可以做的就是資訊的動態互動)
2.安全性(不允許直接訪問本地硬碟)
3。跨平臺性(只要可以解析js的瀏覽器都可以執行,和平臺無關)
和Java的區別
JavaScript | Java |
---|---|
Netscape公司的產品,最初叫Livescript | Sun公司的產品,現在是Oracle公司的產品 |
直譯式指令碼語言 | 需要先編譯成位元組碼檔案,在執行 |
弱型別語言 | 強型別語言 |
弱型別語言
弱型別語言是一種弱型別定義的原,某一個變數被定義型別,該變數可以根據環境變化自動進行轉換,不需要經過顯性強制轉換
強型別語言
強型別語言是一種強制型別定義的語言,一旦某一個變數被定義型別,如果不經過強制轉換,則它永遠就是該資料型別了
書寫位置
1.內嵌式:
<script type="text/javascript"> //alert是Javascript語言提供的一個警告框函式 //它可以接受任意型別的引數,這個引數就是警告框的提示資訊 alert("內嵌式") <script>
2.外聯式:
首先新建一個檔案型別為.js的檔案,然後再該檔案中寫js語句,通過script標籤對引入到html頁面中。
<script src="js檔案路徑地址">這裡不能寫js語句</script>
3.行內式:
直接寫在標籤身上,是一個簡寫的時間,所以又稱之為事件屬性。 onclick單機事件
<input type="button" value="點我呀" onclick="alert(點我幹啥!);"> <button onlick = "alert("test");>點我呀!<button>
資料型別
變數是可以存放某些之的記憶體的命名。
定義:存放資料,記憶體可以儲存任意資料
JavaScript的變數型別
未定義的型別:undefined
數值型別: number (凡是數字都是數值型,不區分和小數)
字元換型別:string(凡是引號包裹起來的內容全部都是字串)
物件型別:object(特殊數值null)
布林型別:boolean (true,false)
函式型別:function
JavaScript裡特殊的值:
undefined 未定義,所有js變數未賦予初始值的時候,預設值都是unde空值
null 空值
關係(比較)運算
等於: == 等於是簡單的做字面值的比較
全等於: === 除了做字面值的比較之外,還會比較兩個變數的資料型別
邏輯運算
且運算:&&
第一種 :當表示式全為真的時候,返回最後一個表示式的值
第二種:當表示式中,有一個為假的時候。返回第一個為假的表示式的值
var a = "abc"; var b = true; var d = false; var c = null; alert(a && b); // true alert(b && a); // true alert(a && d); // false alert(a && c); // null
或運算:| |
第一種:當表示式全為假時,返回最後一個表示式的值
第二種:只要有一個表示式為真,就會把返回第一個為真的表示式的值
alert(a || c); // null alert(c || d); // false alert(a || c); // abc alert(b || c); //abc
並且&&與預算和| |或運算有短路。
短路就是說當這個&&或| |運算有結果了之後。後面的表示式不在執行
在Javascript語言中,所有的變數,都可以作為一個boolean型別的變數去使用
陣列
1,陣列定義方式
js中陣列的定義
格式:
var 陣列名 = []; //建立空陣列 var 陣列名 = [1,'abc',true]; //定義陣列同時賦值元素 alert(arr.length); // 遍歷陣列
注意:使用最大下標值就會自動的給陣列做擴容操作
函式
可以使用function關鍵字來定義函式
// 第一種 var function 函式名(函式體){ //(函式體) } // 呼叫函式:函式名(實際引數); //第二種 var 函式名 = function(函式體){ //(函式體) } // 呼叫函式:函式名(實際引數); http://www.cppcns.com
1,函式只有被呼叫後才會執行
2,如果函式需要返回值,直接使用return返回,不會像Java一樣要考慮返回值的型別
在JavaScript語言中,如何定義帶有返回值的函式?
只需要在函式體內直接使用return語句返回值即可!
注:再Java中函式允許過載,但是再JS中函式的過載會直接覆蓋掉上一次的定義
函式的 arguments 隱形引數(只放在function函式內)
就是再function函式中不需要定義,但卻可以直接用來獲取所有引數的變數。我們管它叫隱形引數。
隱形引數特別像Java基礎的可變長引數一樣。
可變長引數其他是一個數組。
那麼js中的隱形引數也跟Java的可變長引數一樣。操作類似陣列。
在js中萬物皆物件,甚至陣列字串函式都是物件。所以這個叫做arguments的東西也是個物件,而且是一個特殊的物件,它的屬性名是按照傳入引數的順序來的,第一個引數的屬性名是'0',第二個引數的屬性名是'1',以此類推,並且它還有個length屬性,儲存的是當前傳入函式引數的個數,很多時候我們把這種物件叫做類陣列物件。
JS中的自定義物件(擴充套件內容)
Object形式的自定義物件
物件的定義:
var 變數名 = new Object(); //物件例項(空物件) 變數名.屬性名 = 值; // 定義一個屬性 變數名.函式名 = function(){} // 定義一個函式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // 物件的定義 // var 變數名 = new Object(); //物件例項(空物件) // 變數名.屬性名 = 值; // 定義一個屬性 // 變數名.函式名 = function(){} // 定義一個函式 var obj = new Object(); obj.name = "111"; obj.age = 18; obj.fun = function (){ alert("姓名:" + this.name + ",年齡:" + this.age); } // 物件的訪問: // 變數名.屬性 / 函式名(); alert(obj.age) </script> </head> <body> </body> </html>
花括號形式的自定義物件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // 花括號形式物件的定義: // var 變數名 = { // 空物件 // 屬性名:值,// 定義一個屬性 // 屬性名:值,// 定義一個屬性 // 函式名:function(){} // 定義一個函式 // }; var obj = { name:"劉德華",age:19,fun : function(){ alert("姓名:" + this.name + ",年齡:" + this.age); } }; // 物件的訪問: // 變數名.屬性 / 函式名(); alert(obj.name); // 訪問var內的區域性變數 obj.fun(); // 訪問var內的fun方法 </script> </head> <body> </body> </html>
JS中的事件
什麼是事件?事件是電腦輸入裝置與網頁進行互動的相應。我們稱之為事件。
常用的事件:
onload:載入完成事件 頁面載入完成之後,常用於做頁面js程式碼初始化操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // onload事件的方法 function onloadFun(){ alert("靜態註冊onload事件,所有程式碼"); } // onload 事件動態註冊是固定寫法 window.onload = function (){ alert("動態註冊的onload事件") } </script> </head> <!--靜態註冊事件onload事件 <body onload="alert('靜態註冊onload事件')"> --> <body> </body> </html>
onclick:單擊事件 常用於按鈕的點選相應操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> function onclickFun(){ alert("靜態註冊onclick事件"); } // 動態註冊onclick事件 window.onload = function (){ // 1 獲取標籤物件 /* * document 是JavaScript語言提供的一個物件(文件) * get 獲取 * Element 元素(就是標籤) * * getElementById通過ID屬性獲取標籤物件 */ var btnObj = document.getElementById("btn01"); // alert(btnObj); jxJZSknoo // 2 通過標籤物件.事件名 = function(){} btnObj.onclick = function (){ alert("動態註冊的onClick事件") } } </script> </head> <body> <!--靜態註冊onClick事件--> <button onclick="onclickFun();">靜態註冊</button> <!--動態註冊onClick事件--> <button id="btn01">動態註冊</button> </body> </html>
onblur:失去焦點事件 常用於輸入框失去焦點後驗證其輸入內容是否合法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // onblur事件會在物件失去焦點時發生 // 靜態註冊失去焦點事件 function onblurFun(){ // console是控制檯物件,是由JavaScript語言提供,專門用來向瀏覽器的控制器列印輸出,用於測試使用 // log()是列印的方法 console.log("靜態註冊失去焦點事件"); } // 動態註冊 onblur事件 window.onload = function (){ // 1.獲取標籤物件 var passwordObj = document.getElementById("password"); // alert(passwordObj); // 2.通過標籤物件.事件名 = funcion(){}; passwordObj.onblur = function (){ console.log("靜態註冊失去焦點事件"); } } </script> </head> <body> 使用者名稱:<input type="text" onblur="onblurFun();"><br/> 密碼: <input id="password" type="text"><br/> </body> </html>
onchange:內容發生改變事件 常用於下拉列表和輸入框內容發生改變後操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> function onchangeFun(){ alert("您的男神改變了") } jxJZSknoo </script> </head> <body> 請選擇你心目中的男神: <select onchange="onchangeFun()"> <option>你自己</option> <option>洋洋</option> <option>羊羊</option> <option>陽陽</option> </select> </body> </html>
onsubmit:表單條件事件 常用於表單提交前,驗證所有表單項是否合法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // 靜態登錄檔單提交事件 function onsubmitFun(){ // 要驗證所有表單項是否合法,如果有一個不合法就阻止表單提交 alert("靜態登錄檔單提交時間-----發現不合法") return false; } window.onload = function (){ // 1 獲取標籤物件 var fromObj = document.getElementById("form01"); // 2 通過標籤物件.事件名 = function(){} fromObj.onsubmit = function (){ // 要驗證所有表單項是否合法,如果有一個不合法就阻止表單提交 alert("動態登錄檔單提交事件-----發現不合法"); return false; } } </script> </head> <body> <from action = "http://localhost:8080" method = "get" onsubmit="return false"> <input type="submit" value="靜態註冊"/> </from> <from action = "http://localhost:8080" id="form01"> <input type="submit" value="動態註冊"/> </from> </body> </html>
事件的註冊又分為靜態註冊和動態註冊兩種
事件的註冊(繫結)?
其實就是告訴瀏覽器,當事件響應後要執行哪些操作程式碼,叫事件註冊或事件繫結。
靜態註冊事件:通過html標籤的事件屬性直接賦值於事件響應後的程式碼,這種方式我們叫靜態註冊。
動態註冊事件:是指先通過js程式碼得到的標籤dom物件,然後再通過dom物件.事件名 = function(){}這種形式賦於事件響應後的程式碼,叫動態註冊。
動態註冊基本步驟:
1,獲取標籤物件
2,標籤物件.事件名 = funcion(){}
DOM模型
DOM全程是Document Object Model 文件物件模型
就是把文件中的標籤,屬性,文字,轉換成為物件來管理。
總結
本篇文章就到這裡了,希望能給你帶來幫助,也希望你能夠多多關注我們的更多內容!