JavaScript主要是用來完成頁面數據的驗證,
執行在用戶端通過瀏覽器解析JavaScript程式碼
JS是弱型別語言,弱型別就是型別可變,
Java是強型別語言,強型別就是定義變數時型別已確定而且不可變
JS的三大特點:
1.互動性(可以進行資訊的動態互動)
2.安全性(不允許直接存取本地硬碟)
3.跨平臺性(只要可以解析JS的瀏覽器均可執行)
JS的基本使用的一個小demo:
<script type="text/javascript">
alert("123");
</script>
//alert是JS語言的一個警告函數,
其可接受任意型別的參數,該參數就是框內的提示資訊
</script>
爲提高程式碼的複用性可引入外部的JS檔案方式爲:
<script type="text/javascipt" src="路徑"></script>
src屬性專門用來引入js檔案路徑(可以是相對路徑,也可以是絕對路徑)
script標籤可以用來定義js程式碼,也可以用來引入js檔案,但在使用時二選一使用不能同時使用Eg:
<script type="text/javascipt" src="路徑">
alert("123");
//該用法爲錯誤用法
</script>
但是一個.jsp檔案中可存在多個<script></script>
塊Eg:
<script type="text/javascipt" src="路徑"></script>
...//省略n個<script></script>塊
<script type="text/javascipt" src="路徑">
alert("123");
</script>
javascript中的變數型別:
1.數值型別:Number 包含 java中int,double,float,short,long 以及byte
2.字串型別:String
3.物件型別:Object
4.布爾型別:Boolean
5.函數型別:Function
javascript中特殊的值:
1.undefined:未定義,所有js變數中未賦予初始值的時候預設都是undefined
2.null:空值
3.NAN:全稱爲not a number,非數位,非數值。
js中變數的定義格式:
var 變數名;
var 變數名 = 值;
demo:
<script type="text/javascript">
var i ;
//alert(i); //undefined
i = 12;
//typeof()是JavaScript語言提供的一個函數
//alert(typeof(i)); //number
i = "abc";
//typeof()可以取出變數的數據型別返回
//aletr(typeof(i));//String
var a = 12;
var b = "abc";
//alert(a * b);//NaN是非數據非數值
</script>
js中關係比較運算:
<, <=, >, >=, !=
<script type="text/javascript">
var a = "1";
var b = 1;
//alert(a == b);//true
//alert(a === b);//false
</script>
js中邏輯運算:
1.且運算:&&
2.或運算:||
3.取返運算:!
在js的語言中所有的變數都可以作爲一個boolean型別的變數來使用
0,null,undefined,"",都被認爲爲flase
<script type="text/javascript">
// var a = 0;
// if(a){
// alert("零爲真");
// }else{
// alert("零爲假");
// }
// var b = null;
// if(b){
// alert("null爲真");
// }else{
// alert("null爲假");
// }
// var c = undefined;
// if(c){
// alert("undefined爲真");
// }else{
// alert("undefined爲假");
// }
var d = "";
if(d){
alert("空串爲真");
}else{
alert("空串爲假");
}
</script>
/*
&&且運算
有兩種情況
第一種:當表達式全爲真的時候。返回最後一個表達式的值
第二種:當表達式中,有一個爲假的時候。返回第一個爲假的表達式的值
||或運算
第一種:當表達式全爲假時,返回最後一個表達式的值
第二種:只要有一個表達式爲真。就會返回第一個爲真的表達式的值
並且&& 且運算和|| 或運算 有短路
短路就是說,當這個&&或||運算有結果了之後。後面的表達式不再只執行
*/
<script type="text/javascript">
//&&運算
var a = "abc";
var b = true;
var c = false;
var d = null;
//第一種:當表達式全爲真的時候。返回最後一個表達式的值
//alert(a && b);//true
//alert(b && a);//true
//第二種:當表達式中,有一個爲假的時候。返回第一個爲假的表達式的值
alert(a && d);//false
alert(a && c);//null
alert(a && d && c);//false
//||或運算
//第一種:當表達式全爲假時,返回最後一個表達式的值
alert(c || d);//false
alert(d || c);//null
//第二種:只要有一個表達式爲真。就會返回第一個爲真的表達式的值
alert(a || c);//abc
alert(b || c);//true
</script>
陣列定義方式:
js中陣列的定義:
格式:
var 陣列名 = []; //空陣列
var 陣列名 = [1,‘abc’,true]; //定於陣列同時賦值元素
在javaScript中的陣列只要通過陣列下標賦值,則最大的下標值就會自動擴容。
函數的兩種定義方式:
第一種,可以使用function關鍵字來定義函數
function 函數名(形參列表){
函數體
}
Eg:
//定義一個無參函數
<script type="text/javascript">
function fun(){
alert("無參函數被呼叫了");
}
//定義一個有參函數
function fun2(a , b){
alert("有參函數被呼叫了a="+ a+"b="+b);
}
//在JS中如若需要定義帶有返回值的函數只需要直接使用return語句返回即可Eg:
function fun3(n1,n2){
var num = ni + n2;
return num;
}
alert(fun3(100,100))
</script>
第二種定義方式:
var 函數名 = function (形參列表){
函數體
//無參函數
var fun4 = function(){
alert("這是一個無參函數");
}
//有參類比
}
在JS中函數是不不允許被過載的原因是如若過載新的函數將會覆蓋原來的函數。