1. 程式人生 > 實用技巧 >springboot攔截器配置

springboot攔截器配置

JavaScript的組成

完整的JavaScript是由ECMAScript(語法)、Browser Objects(DOM、BOM)(特性)組成的。

在HTML中使用JavaScript

可以在head或body中使用<script>嵌入javascript指令碼

什麼是變數

ECMAScript的變數是鬆散型別

鬆散型別:可以用來儲存任何型別的資料

變數的宣告和賦值

1、變數的宣告:

變數的宣告要使用var操作符

語法:var變數名

2、變數賦值

宣告的同時賦值:var變數名=值

先聲明後賦值:變數名=值

說明:省略var宣告的變數是全域性變數

JavaScript的資料型別

ECMAScript:簡單資料型別,也稱基本資料型別{Undefined,Null;Boolean;Number;String};ECMAScript6新增了symbol資料型別;複雜資料型別:Object

typeof

功能:檢測變數型別

語法:typeof變數或typeof(變數)

返回值:string型別,有可能是string、number、boolean、object、undefined、function

undefined

-undefined型別只有一個值,即特殊undefin

null

1、null值表示一個空指標

2、如果定義的變數準備在將來用於儲存物件,那麼最好將改變數初始化為null而不是其他值

說明:undefined值是派生自null值的,所以undefined==null的返回結果是true

Number

-Number:表示整數和浮點數

-NaN:即非數值(Not a Number)是一個特殊的數值

說明:1、任何涉及NaN的操作(例如NaN/10)都會返回NaN.

2、NaN與任何值都不相等,包括NaN本身

3、所有涉及算術運算都返回Number型別

isNaN()

-語法:isNaN(n)

-功能:檢測n是否是“非數值”

-返回值:boolean

-引數:引數n可以是任何型別

說明:isNaN()對接收的數值,先嚐試轉換為數值,再檢測是否為非數值。

數值轉換

-有三個函式可以把非數值轉換為數值

Number(),parseInt(),parseFloat()

說明:

1、Number()可以用於任何資料型別。

2、parseInt()parseFloat()則專門用於把字串轉換成數值。

parseInt()

parseInt():會忽略字串前面的空格,直至找到第一個非空格字元。

說明:

1、parseInt():轉換空字串返回NaN.

2、parseInt():這個函式提供第二個引數:轉換時使用的基數(即多少進位制)

parseFloat()

parseFloat:從第一個字元開始解析每個字元,直至遇見一個無效的浮點數字符為止

說明:

除了第一個小數點有效外,parseFloat(0與parseInt()的第二個區別在於它始終都會忽略前導的零。····    ················

string

string型別用於表示由零或多個16位Unicode字元組成的字元序列,即字串。字串可以由雙引號(“)或者單引號(')表示

toString()與String()

語法:str.toString()

功能:將str轉換成字串

返回值:str的一個副本

引數:str是要轉換的內容,可以是數值、布林值、物件和字串。

說明:在不知道要轉換的值是不是null或者undefined的情況下,還可以使用String()函式,他能夠將任何的值轉換為字串

Boolean

用於表示真假的型別,即true表示真,false表示假

型別轉換

1、除0之外的所有數字,轉換為布林型都為true

2、除”“之外的所有字元,轉換為布林型都為true

3、null和undefined轉換為布林型為false

邏輯操作符

邏輯操作符:

&& 與 || :或 !:非

邏輯與

&&與(只有一個條件不成立,返回false)

說明:在有一個運算元不是布林值的情況,邏輯與操作就不一定返回值,此時他遵循下列規則:

1、如果第一個運算元隱式轉換後為true,則返回第二個運算元

2、如果第一個運算元隱式轉換後為false,則返回第一個運算元

邏輯或

||(只要一個條件成立,返回true);

說明:在有一個運算元不是布林值的情況,邏輯與操作就不一定返回值,此時他遵循下列規則:

1、如果第一個運算元隱式轉換後為true,則返回第一個運算元

2、如果第一個運算元隱式轉換後為false,則返回第二個運算元

3、如果兩個運算元是null,則返回null

4、如果兩個運算元是NaN,則返回NaN

5、如果兩個運算元是undefined,則返回undefined

邏輯非

!非

說明:

1、無論運算元是什麼資料型別,邏輯非都會返回一個布林值

2、!!同時使用兩個邏輯非操作符時:

-第一個邏輯非操作基於無論什麼運算元返回一個布林值

-第二個邏輯非則對該布林值求反

比較操作符

==:想等,只比較是否想等

===:相等,比較值的同時比較資料型別是否想等

!=:不想等,比較值是否不想等

!==:不想等,比較值的同時比較資料型別是否不想等

三元操作符

語法:

條件?執行程式碼1:執行程式碼2

說明:可代替簡單的if語句,如果條件成立,執行程式碼1,否則執行程式碼2

函式的定義

函式使用function宣告,後跟一組引數以及函式體,語法如下:

function functionName([arg0,arg1,...argn]){

  staatements

}

說明:

1、functionName是要定義的函式名,屬於識別符號

2、[]中的arg0,arg1,...argn為函式的引數

3、[]說明裡面的內容不是必須的,他不是語法

函式的呼叫

語法:

函式名([arg1,arg2,...argn])

函式的返回值

任何函式通過return語句,後面跟著返回值來實現返回值

說明:

1、函式會在執行完return語句之後停止並立即退出

2、return語句也可以不帶任何返回值,用於提前停止函式執行又不需要返回值的情況.

JavaScript中的引數

ECMAScript中的引數在內部用一個數組來表示

在函式體內通過arguments物件訪問這個陣列引數.

說明:

1、arguments物件只是與陣列類似,並不是Array的例項.

2、[]語法訪問它的每一個元素.

3、length屬性確定傳遞引數的個數.

JS物件之陣列

建立陣列的基本方式有兩種:

1、使用Array建構函式

語法:new Array()

小括號()說明:

(1)預先知道陣列要儲存的專案數量

(2)向Array建構函式中傳遞陣列應包含的項

2、使用陣列字面量表示法

由一對包含陣列項的方括號[]表示,多個數組項之間以逗號隔開.

var a = new Array(2);
       a[0] = 1;
       a[1] = "ni";
       var nums = new Array(1,3,6,9);
       var cols = ["red","yellow","green"];
       var infos = [6,"marry",true];

陣列元素的讀寫

讀取和設定值時,使用方括號[]並提供相應的索引

說明:索引是從0開始的正整數

陣列長度:array.lenght

說明;

1、通過設定lenght可以從陣列的末尾移除項或向陣列中新增新項.

2、把一個值放在超出當前陣列大小的位置上時,會重新計算陣列長度值,長度值等於最後一項索引加1

push()

語法:arrayObject.push(newele1,newele2,...,neweX)

功能:把他的引數順序新增到arrayObject的尾部

返回值:

把指定的值新增到陣列的新長度

unshift()

在前面新增

shift()

語法:arrayObject.shift()

功能:

刪除 arrayObject中的第一個元素

返回值:

被刪除的那個元素

pop()

功能:刪除arrayObject中最後一個元素

join()

語法:

arrayObject.join(separator)

功能:

用於把陣列中的所有元素放入一個字串

返回值:

字串

reverse()

語法:stringObject.reverse()

功能:用於顛倒陣列中元素的順序

返回值:陣列

sort()

語法;

arrayObject.sort(sortby)

功能:

用於對陣列的元素進行排序.

返回值:陣列

說明:

1、即使陣列中的每一項都是數值,sort()方法比較的也是字串.

2、sort()方法可以接受一個比較函式作為引數

 var arr = [9,-1,-2,10,85,98,45,-25,56]
 document.write(arr.sort(function (a,b){return a-b}));

concat()

語法:

arrayObject.concat(arrayX,arrayX,......,arrayX)

功能:

用於連線兩個或者多個數組

返回值:

陣列

slice()

語法:

arrayObject.slice(start,end)

功能:

從已有的陣列中返回選定的元素

引數:

start(必需)規定從何處選取,如果是負數,從陣列尾部開始算起

end(可選)規定從何處結束選取,是陣列片段結束處的陣列下標

說明:

1、如果沒有end,切分的陣列從start到陣列結束的所有元素.

2、如slice()方法的引數中有一個負數,則用陣列長度加上該數來確定相應的位置

返回值:陣列

刪除

語法:

arrayObject.splice(index,count)

功能:

刪除從index處開始的零個或多個元素

返回值:

含有被刪除的元素的陣列

插入和替換

語法:arrayObject.splice(index,count,item1,.....,itemX)

功能:

在指定位置插入值

引數:

index:起始位置

count:要刪除的項數

item1...itemX:要插入的項

返回值:從原始陣列中刪除的項(如果沒有刪除任何項,則返回空陣列)

indexOf()

語法:

arrayObject.indexOf(searchvalue,startIndex)

功能:從陣列的開頭(位置0)開始後查詢.

返回值:

引數:searchvalue:必需,要查詢的項

startIndex:可選,起點位置的索引.

返回值:

number,查詢的項在陣列中的位置,沒有找到的情況下返回-1

說明:

1、在比較第一引數與陣列中的每一項時,會使用全等操作符,即要求查詢的項必須嚴格想等.

2、陣列的位置的方法是ECMAScript5為陣列例項新增的,所以支援的瀏覽器

JS物件之String

charAt()與charCodeAt()

語法:stringObject.charAt(index)

功能:返回stringObject中index位置的字元

說明:ECMAScript5中可使用"方括號加字元索引"來訪問字串中特定的字元,但是IE7及更早的瀏覽器會返回undefined

indexOf()

語法:stringObjectOf("o")

功能:從一個字串中搜索給定的子字串,返回字串的位置.

返回值:數值.

說明:如果沒有好到該字串,則返回-1.

lastIndexOf()

語法:stringObject.lastIndexOf("o")

功能:從右邊搜尋,從一個字串中搜索給定的字串,返回字串的位置.

返回值;數值.

說明:如果沒有找到該字串,則返回-1.

slice()

語法:stringObject.slice(start,end)

功能:擷取子字串.

引數說明;

1、start:必須,指定子字串的開始位置.

2、end:可選,表示子字串到那裡結束,end本身不在擷取範圍之內,省略時擷取至字串的末尾

3、引數為負數時,其值為字串長度+該負數

substring()

說明:語法及功能同slice()完全一樣

區別在於:1、當引數為負數時,自動將引數轉換為0.

2、substring()會將較小的數作為開始位置,將較大的數作為結束位置

substr()

語法:stringObject.substr(start,len)

功能:擷取字串.

引數說明:1、start:必須,指定子字串的開始位置

2、len:可選,表示擷取的字元總數,省略時擷取至字串的末尾

3、當start為負數時,會將傳入的賦值與字串的長度相加.

4、當len為負數時,返回空字串

split()

語法:stringObject.split(separator)

功能:把一個字串分割成字串陣列

返回值:Array

說明:separator:必須,分隔符

replace()

語法:stringObject.replace(regexp/substr,replacement)

功能:在字串中用一些字元替換另一些字元,或替換一個與正則表示式匹配的字串

返回值:String

引數:regexp:必須.規定子字串或要替換的模式的RegExp物件

replacement:必須.一個字串值

不會改變原來字元物件的值

toUpperCase()與toLowerCase()

語法:stringObject.toUpperCase()

功能:把字串轉換為大寫.

語法:stringObject.toLowerCase()

功能:把字串轉換為小寫.

JavaScript DOM基礎

DOM查詢方法

語法:document.getElementById("id")

功能:返回對擁有指定ID的第一個物件的引用

返回值:DOM物件

說明:id為DOM元素上id屬性的值

語法:document.getElementsByTagName("tag")

功能:返回一個對所有tag標籤引用的集合

返回值:陣列

說明:tag為要獲取標籤的名稱

設定元素樣式

語法:ele.style.styleName =styleValue

功能:設定ele元素的CSS樣式

說明:

1、ele為要設定樣式的DOM物件

2、styleName為要設定的樣式名稱

3、styleValue為要設定的樣式值(要用雙引號,使用駝峰形勢)

innerHTML

語法:ele.innerHTML

功能:返回ele元素開始和結束標籤之間的HTML

語法:ele.innerHTML = "html"

功能:設定ele元素開始和結束標籤之間的HTML內容為html

說明:innerHTML:獲取和設定標籤之間的文字和html內容

className

語法:ele.className

功能:返回ele元素的class屬性

說明:如果有兩個以上的class值,則全部返回

語法:ele.className = "cls"

功能:設定ele元素的class屬性為cls(替換原先的class屬性值)

獲取屬性

語法:ele.getAttribute("attribute")

功能:獲取ele元素的arrribute屬性

說明1、ele是要操作的dom物件

2、attribute是要獲取的html屬性(如:id、tpye)

設定屬性

語法:ele.setAttribute("attribute,value")

功能:在ele元素上設定屬性

說明:

1、ele是要操作的dom物件

2、attribute為要設定的屬性名稱

3、value為設定的attribute屬性的值

刪除屬性

與暗訪:ele.removeAttribute("attribute")

功能:刪除ele上的attribute屬性

說明:

1、ele是要操作的dom物件

2、attribute是要刪除的屬性名稱

HTML事件

語法:<tag 事件 = “執行指令碼”> </tag?

功能:在HTML元素上繫結事件

說明:執行指令碼可以是一個函式的呼叫

滑鼠事件

-onload:頁面載入時觸發

-onclick:滑鼠點選時觸發

-onmouseover:滑鼠滑過時觸發

-onmouseout;滑鼠離開時觸發

-onfoucs:獲得焦點時觸發

-onblur:失去焦點時觸發

-onchange:域的內容改變時發生

-onsubmit:表單中的確認按鈕被點選時發生

-onmousedown:滑鼠按鈕在元素上按下時觸發

-onmousemove:滑鼠指標移動時發生

-onmouseup:在元素上鬆開滑鼠按鈕時觸發

-onresize:在調整瀏覽器視窗的大小時觸發

-onscroll:拖動滾動條滾動時觸發

HTML事件

語法:<tag 事件="執行指令碼"></tag>

功能:在HTML元素上繫結事件

說明:執行指令碼可以是一個函式的呼叫

<!--事件繫結第一種方式-->
<input type="button" value="彈出" onclick="a()">
<script>
    function a(){
        alert("哈哈");
    }
</script>
<!--第二種方式-->
<div class="btn" onmouseover="f1(this,'red')" onmouseout="f2(this,'black')">按鈕</div>
<script>
    function f1(btn,bc) {
        btn.style.background = bc;
}
</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> f2(btn,bc) {
   btn.style.background </span>=<span style="color: #000000;"> bc ;
}</span></pre>

DOM0級事件

語法:ele.事件 = 執行指令碼

功能:在DOM物件上繫結事件

說明;執行指令碼可以是一個匿名函式,也可以是一個函式的呼叫

頁面載入時觸發

<script>
        window.onload=function () {
            var box = document.getElementById("box");
            var clicekd = function () {
                alert("我被點選了");
            }
            box.onclick = clicekd;
        }
    </script>