一.Javascript的含義 是一種解釋性的語言,主要給網頁添加各色各樣的動態功能,同時為用戶提供瀏覽效果。 二.JavaScript的主要特點 三.JavaScript的組成 四.JavaScript的三種引入方式 1.標簽內引入2.內部引入3.外部引入 五.javaScript語法的基本要求 ...
一.Javascript的含義
是一種解釋性的語言,主要給網頁添加各色各樣的動態功能,同時為用戶提供瀏覽效果。
二.JavaScript的主要特點
1. 簡單性
2. 動態性
3. 安全性
4. 跨平臺性
三.JavaScript的組成
1. ECMAScript :描述語言的語法和基本對象
2. BOM:描述網頁內容的方法和介面
3. DOM:描述與瀏覽器進行交互的方法和介面
四.JavaScript的三種引入方式
1.標簽內引入
2.內部引入
3.外部引入
五.javaScript語法的基本要求
1.按照順序依次執行
2.嚴格區分的大小寫
3.javascript中的結束分號不能省略
4.javascript中會忽略空白符和換行符
六. JavaScript常用的調試方法
1.alert()
2.confirm();
3.prompt();
4.console.log();
5.document.write()
七.表示符的使用規則
1.只用用數字、字母、下劃線、$
2.不能使用數字開頭
3.區分大小寫
4.不能用關鍵字
5. 駝峰命名法
八.javaScript中常見的數據類型
1.Number
2.Boolean
3.undefined
4.Null
5.String
6.Object
九. 算術運算符
+、-、*、/、%。
1.+ 運算符:運算規則
* 如果兩個都是Number則,則就按照普通的數學加法運算。
* 如果有一個是字元串,就按照字元串的串聯的方式連接。(如果另外一個不是字元串,則先轉換成字元串再連)。
* 如果有一個是NaN,則結果就是NaN。
*如果同時是Infinity或-Infinity,則結果就是Infinity或-Infinity。
* 如果一個是Infinity另外一個是-Infinity,則結果為NaN。
2.- 運算符:運算符規則
- 如果兩個都是Number則,則就按照普通的數學減法運算。
- 如果有一個操作數是字元串、布爾值、null 或undefined,則先在後臺調用Number()轉型函數將其轉換為數值,然後再根據正常減法計算。如果轉換的結果有一個是NaN,則減法的結果就是NaN
* 如果有一個操作數是對象,則調用對象的valueOf()方法以取得表示該對象的數值。如果得到的值是NaN,則減法的結果就是NaN。如果對象沒有valueOf()方法,則調用其toString()方法並將得到的字元串轉換為數值(瞭解)
3.* 運算符:運算符規則。
- 運算規則同減法。
1. / 運算符:運算規則
- 就是普通的除法運算,運算規則同 *
4. %運算符:運算規則
- 求餘(求模)運算。
十.javaScript中常見的運算符
1.邏輯與 ( 只要有一個是false,則返回false)
2.邏輯或 (只要有一個是true,結果就是true)
3.邏輯非 (先轉換成Boolean值,再取反得到最終的結果)
### &&()和|| 的結果總結:
1. 如果第一個能夠決定結果,則結果就是第一個表達式的值
2. 如果第一個不能決定結果,則結果就是第二個表達式的值
十一.JavaScript中的判斷語句
1.if語句
>##### 語法:
if(condition){
//語句1
}
2.if...else語句
>##### 語法:
if(condition){
//語句1
}
else{
//語句2
}
3. if...else if...elsif... 語句
>##### 語法:
if(condition1){
//語句1
}
else if(condition2){
//語句2
}
...
else if(condition3){
//語句n
}
4.if...else if...else ...else語句
>##### 語法:
if(condition1){
//語句1
}
else if(condition2){
//語句2
}
...
else if(condition3){
//語句n
}
else{
//else語句
}
5. switch條件語句
>##### 語法:
switch (expression) {
case value1:
//語句1
break;
case value2:
//語句2
break;
case value3:
//語句3
break;
case value4:
//語句4
break;
default:
}
十二.JavaScript中的迴圈結構
1.for迴圈
語法:
for(表達式1; 表達式2; 表達式3){
//迴圈體
}
>註意:
- 3個表達式的都可以省略。
- 對錶達式1和表達式3省略,對for迴圈沒有任何影響,只是少執行了代碼而已。
- 如果表達式2省略,表示此處為true,那麼這個迴圈就是死迴圈。
- 如果第一次檢查表達式2的時候就是false,則迴圈體內的代碼可能一次也不執行。
2.while迴圈
語法:while(condition){ }
>註意:
- condition不能省略。如果省略為語法錯誤
- while迴圈也有可能一次也不執行。
3. do...while迴圈
語法: do{ //迴圈體}while(condition);
>註意:
- condition條件不能省略,省略語法錯誤。
- 由於先執行在判斷,所以,對do...while 迴圈來說,迴圈體至少執行一次。
十三. javaScript中的兩個特殊控制語句
1.break語句
作用:在迴圈體中,break會提前結束迴圈
>例如:
for(var i=0;i<6;i++){
if(i==5){
break;
}
console.log(i);
}
2.continue語句
作用:在迴圈體中,continue會結束本次迴圈,不會執行剩餘的代碼,不過會繼續執行它外層的迴圈
>例如:
for(var i=0 i<10;i++){
if(i==6){
continue;
}
}
十四.自定義函數
1.函數的聲明
語法:
function 函數名(形式參數1, 形式參數2, ...){
//函數體
}
例如:
function mer(a,b,c){
var m=a+b;
}
2.函數的調用
語法:
方法名(實參1,實參2);
例如:
function mer(m,n){
var m=n;
}
alert(mer(10));
3.函數的命名規範
十五.變數的作用域
##### 1.全局變數
定義: 在函數外部聲明的變數
例如:
var m=13;
alert(m);
##### 2.局部變數
定義: 在函數體內部聲明的變數
>例如:
function f(){
var m="234";
alert(m);
}
##### 3.匿名函數
1.定義:沒有聲明函數名的函數
>例如:
var m=function(){
alert("Hello world");
}
m();
2.註意點:
* 匿名函數除了沒有函數名以外,與其他函數沒有任何區別
* 如果想要在其他地方調用該函數,則需要先聲明一個變數,並把該函數的值賦值給聲明的變數
* 可以將變數名做為函數名調用
3.匿名函數的作用
* 可以將函數表達式存儲在變數中
* 可以將匿名函數當作參數來傳遞
##### 4.匿名函數的立即執行
1.語法:
* (function(){
alert("立即執行");
}());
2.註意點:
* 要把匿名函數用一對圓括弧括起來,作為一個整體看
* 在函數的最後面添加一對圓括弧來表示調用函數
3.函數遞歸調用
1. 定義:
在函數的內部調用當前的函數
2. 需要滿足的條件
* 要有結束條件
* 遞歸不能無限的遞歸下去,否則會溢出。
3. 總結:
函數的調用原理與數據結構棧的實現是一致的。
十六.JavaScript中數組的特點
1.數組的長度是可以動態改變的
2.在同一個數組中可以存儲不同的數據類型
3.每一個數組中都有一個 length的屬性,表示的是數組中元素的個數
十七.數組的創建
- 數組中的兩種基本創建方式
1.字面量的方式
例如:["a", 5, "b",8]
2.構造函數
例如: new Array(數組長度);
註意點:
- 在構造函數創建數組對象時,最後一個元素後面不需要添加逗號
- 在構造函數中只傳入一個Number值,這個值一定要大於 0
- 在構造函數創建數組對象時,new關鍵字可以省略
3.修改和訪問數組中的元素
例如:
var arr=[10,20,30,40,50,60];
alert(arr[0]);
arr[3]=100;
4.數組中的長度
例如:
var arr = [10, 20, 60, 5, 7];
alert(arr.length);
十八.數組的遍歷
1.遍曆數組的方法
* 普通的for迴圈
* for...in
* for each
* for... of
2.普通for迴圈的遍歷
例如:
var arr=[20,30,50,60,78];
for (var i=0;i<arr.length;i++){
console.log(arr[i]);
}
3.for ...in迴圈的遍歷
例如:
var arr=[50,30,60,12,45];
for (var index in arr){
console.log(arr);
}
##### 註意:
for...in遍曆數組時,遍歷出來的是數組的下標
4.for each方法的遍歷
例如:
var arr=[23,4,56,7,80];
arr.forEach(function(ele,index){
alert(ele);
});
十九.javaScript中數組的常用方法
1.轉換方法:
toString()
作用:返回由數組中每個值得字元串形式拼接而成的一個以逗號分割的字元串
例如:
var arr=[2,3,45,6,78];
alert(arr.toString());
2.join()方法
作用:可以使用指定的連接符連接
例如:
var arr = [50, 20, 10, 5, 15, 6];
alert(arr.join("="));
二十.JavaScript中站的方法
1.入棧 ( push() )
作用:把新的元素添加到數組的後面
2.出棧 ( pop() )
作用:把數組中的最後一個元素從數組中移除
例如:
var arr=[2,3,4,5,67];
var num=arr.push("100");
var hom=arr.pop();
alert(num);
alert(hom);
3.隊列方法
1.shift()
作用:從隊列中的頭部移除元素
2.unshift()
作用:向隊列尾部添加元素
例如:
var arr=[23,45,67];
var num=arr.shift();
var bak=arr.unshift();
alert(num);
alert(bak);
4.數組中的倒序
reverse():
作用:將數組中的元素進行倒序
例如:
var arr=[34,56,7,9];
arr.reverse();
alert(arr);
5.javaScript中查找指定元素在數組中的索引
1. indexOf(item,num)
作用:從num的位置開始向後查找item第一次出現的位置
2.lastIndex(item,num)
作用:從num的位置開始向前查找item第一次出現的位置
例如:
var arr=[2,3,5,3,6,2,8,8];
alert(indexOf("2",2);
alert(lastIndeOf("3",4);
6.獲取新的數組
1.concat(arrayX,arrayX,......,arrayX)
作用:用於連接多個數組,並且不會對原數組做任何的改變
例如:
var arr=[2,34,56];
var arr1=[87,65,43];
var newArr=arr.concat(arr1);
alert(newArr);
2. slice(start,end)方法
作用:截取數組,並且返回結渠道的新數組
例如:
var arr=["a","s","d","f","g"];
var arr1.slice(0,3);
alert(arr1);
3.splice(index,howmany,item1,.....,itemX) 方法
作用:向數組中添加元素,刪除元素,替換元素
例如:
var arr=[2,3,4,"as",d,f];
var num= arr.splice(1,3);
alert(num);
var num1=arr.splice(1,0,"m","n");
alert(num1);
var num2=arr.splice(1,2,"2","3");
alert(num2);
二十一.javaScript中數組的檢測
1.instanceof運算符
作用:會返回一個Boolean值,指出對象是否是特定構造函數的一個實例
例如:
var arr = [];
alert(arr instanceof Array);
2.Array.isArray()方法
作用:判斷一個變數是不是數組,是則返回true,否則返回false
例如:
var arr = [];
alert(Array.isArray(arr))
二十二. JavaScript中字元串的操作
1.註意:
javaScript中字元串是不可變的,需要創建一個新的字元串
2. 字元串的創建
- 字元串直接量
例如:
var s = "good";
alert(typeof s);
- 通過String()轉換函數
==例如:==
var s = String(123);
alert(typeof s);
二十三.JavaScript中字元串常見的方法
##### 1.s.charAt(index)
作用:返回的是指定位置的字元
>例如:
var s = "a你好bcd";
alert(s.charAt(0));
##### 2.s.charCodeAt(index)
作用:返回指定位置的字元的 Unicode 編碼
>例如:
var s = "a你好bcd";
alert(s.charCodeAt(0));
##### 3.字元串連接方法
###### 1.s.concat(stringX,stringX,...,stringX)
* 作用:用於連接兩個或者多個字元
* 註意:
1.並不會改變原字元串
2.可以使用字元串連接符(+)
>例如:
var s = "你好";
alert(s.concat("啊", "凌源"));
##### 4.查找子字元串出現的位置
###### 1. s.indexOf(searchvalue,fromindex)
作用:可以返回某個指定的字元串值在字元串中首次出現的位置
>例如:
var v = "abcabdefgh";
alert(s.indexOf("ab"));
###### 2.s.lastIndexOf(searchvalue,fromindex)
作用:可以返回一個指定的字元串值最後出現的位置,在一個字元串中的指定位置從後向前搜索
>例如:
var s = "abcabcdab";
alert(s.lastIndexOf("ab"));
##### 5.js字元串的截取
###### 1.s.substring(start,stop) 方法
作用:用於提取字元串中介於兩個指定下標之間的字元
>例如:
var s="asdfghj";
alert (s.substring(1));
###### 2.s.substr(start, length) 方法
作用:可以在字元串中抽取從start下標開始的指定數目的字元
>例如:
var s="asdfghj";
alert (s.substr(1));
###### 3.s.slice(start,end) 方法
作用:可以提取字元串的某個部分,並且以新的字元串返回被提取的部分
>例如:
var s="asdfghj";
alert (s.slice(1,3));
##### 6.大小寫轉換方法
###### 1.s.toUpperCase
作用:字元串中所有的字元轉變成為大寫
>例如:
var s = "abcAbc";
alert(s.toUpperCase());
###### 2.s.toLowerCase
作用:字元串中的所有的字元轉變成小寫
>例如:
var s = "ABcAbc";
alert(s.toLowerCase());
##### 7.去除字元串首尾空白字元
s.trim() :
作用;只是去除字元串的首尾的所有空白字元. 字元串內部的空白字元不做任何處理
>例如:
var s = " \n \t ABc Abc \t \n \t";
alert(s.trim());
##### 8.字元串替換、匹配、搜索方法
###### 1. s.replace(regexp/substr,replacement)方法
作用:用於在字元串中用一些字元替換另一些字元,或替換一個與正則表達式匹配的子串。
>例如:
var s = "abcaba";
var newStr = s.replace("ab", "js");
alert(newStr);
###### 2. s.match(匹配值)
作用:在字元串內檢索指定的值
>例如:
var s = "abcaba";
var arr = s.match("ab");
alert(arr);
###### 3.s.search(匹配的參數)
作用:始終從字元串的頭部開始查找
>例如:
var s = "abcaba";
var arr = s.search("ab");
alert(arr);
##### 9.字元串比較
* == 比較兩個字元串的==內容==是否相等
* === 恆等 只有類型和內容都相等的時候才返回true
##### * s.localeCompare(other):
- 如果字元串在字母表中應該排在字元串參數之前,則返回一個負值;
- 如果字元串的等於字元串參數,返回0;
- 如果字元串在字母表中應該排在字元串參數之後,則返回一個正數;
##### 10.字元串切割方法
s.split(separator,howmany)方法
作用:用於把一個字元串分割成字元串數組。
>例如:
var s = "How do you do";
var arr = s.split(" ");
alert(arr);
二十四.JavaScript中Math對象
1.常用屬性
- Math.PI : π的值
- Math.E: 自然對數的底數
2.Math對象常用方法
- Math.abs(x) : 返回x的絕對值
- Math.max(任意個數值) :返回傳入的數值中的最大值
- Math.min(任意個數值) :返回傳入的數值中的最小值
- Math.ceil(number) : 返回大於等於number的最小整數(向上取整)
- Math.floor(number) : 返回小於等於number的最大整數(向下取整)
- Math.round(number): 四捨五入
- Math.pow(x, y) : 返回 x^y
- Math.random() : 返回 0-1之間的隨機小數
- Math.sin(x) 正弦, Math.cos(x) 餘弦, Math.tan(x) 正切
二十五.BOM核心---window對象
1. 獲取全局變數的方式
-
this
-
window.age
*window.sagAge()
例如:
var num=24;
function sagAge(){
alert(this.num);
}
alert(window.age);
window.sagAge();
2. window視窗大小
==獲取瀏覽器視窗大小==
1.在Internet Explorer(9+)、Chrome、Firefox、Opera 以及 Safari
window.innerHeight - 瀏覽器視窗的內部高度 window.innerWidth - 瀏覽器視窗的內部寬度
2. 針對於 Internet Explorer 8、7、6、5
document.documentEelement.clentWidth document.documentEelement.clentWidth
3.為了相容瀏覽器的版本可以使用下麵的代碼
var w=window.innerWidth || documentEelement.clentWidht; var h=window.innerHeight || documentEelemlent.clentHeight;
3.調整視窗大小
- window.resize(w,h): 調整到指定的大小
- resizeBy(deltW, deltH): 增加指定視窗的寬和高
例如:
<body>
<button onclick="to();">將視窗調整到指定大小</button>
<br/>
<button onclick="by();">寬和高增加的像素</button>
<script type="text/javascript">
function to () {
alert("我要縮小了");
window.resizeTo(200, 300);
}
function by () {
alert("我開始增大了");
window.resizeBy(30, 30);
}
</script>
</body>
二十六. window中的定時器
1.window對象中定時器的功能方法
- 超時調用 setTimeout()
例如:
/*
setTimeout(code,millisec)
參數1:要執行代碼。一般傳入一個函數。(當然也可是字元串形式的代碼,但是不建議使用)
參數2:多長時間後執行參數1中的代碼。 單位毫秒
*/
<script type="text/javascript">
//傳入函數的時,函數名不要加括弧。(因為方法不是我們調用,是引擎幫助我們調用)
// setTimeout方法會返回一個值,表示超時調用的id,可以在任務執行前取消任務。
var timeOutId = window.setTimeout(go, 3000); // 3秒中之後執行函數go中的代碼
function go () {
window.open("http://www.yztcedu.com")
}
window.clearTimeout(this.timerId); //取消這個超時調用,如果超時調用已經執行完畢,就什麼也不會發生。
</script>
- 周期調用 setInterval()
例如:
/*
setInterval(code,millisec)
參數1:每隔一段時間執行一次的代碼。 一般是一個函數
參數2:周期性執行的時間間隔。 單位毫秒
*/
<body>
<h1 id="time"></h1>
<script type="text/javascript">
//顯示時間,每秒鐘變化一次。
window.setInterval(function() {
var timeElement = document.getElementById("time"); //找到h1標簽
var msg = new Date().toLocaleString();
timeElement.innerHTML = msg; //設置h1標簽中的值
}, 1000);
</script>
</body>
//清除間隔定時器
window.clearInterval(id);
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入學習交流群
343599877,我們一起學前端!