JavaScript知識點的總結

来源:http://www.cnblogs.com/jiaoyu121/archive/2017/06/15/7020176.html
-Advertisement-
Play Games

一.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. 數組中的兩種基本創建方式
    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,我們一起學前端!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">nav { height: 50px;}nav span { margin: 0 5px; ...
  • 這個學期一直在忙著考駕照的事情,眼看就要期末了。我的大學生活的最後一個大的作業也要來臨了。說實話這個學期真的是沒有之前的兩個學期努力了。不知道是快要畢業的緣故還是真的是把心思用在了駕照上,想著在這次放暑假之前把駕照拿到手,就在今天真的實現了,終於可以心無牽掛的離開學校去找實習的工作了。這幾天家裡面也 ...
  • 緊接著上面寫的... 給div加一個邊框,border:1px solid black window.onload = function(){ var div = document.getElementById('div1'); div.onclick = function(){ setInterv ...
  • 微信的圖像有3種JSSDK的API,可以做一些簡單的需求,本節講解一個讓用戶在手機中選擇照片然後分享的項目。 ...
  • 用CSS和jQuery來實現它,儘量看起來和原效果一樣。 最終效果圖 最終效果圖 本教程里,我將使用CSS,HTML和jQuery來創建一個近似Apple TV視差效果,如果你正在閱讀,我假設你對上述三種技術都有基本的瞭解。 廢話不多說,開始第一部分。 HTML頁面 我們的頁面結構像下麵這樣: 首先 ...
  • 1.index.Android.js 2.在項目的 index.android.js同一目錄下 創建json文件 這樣方便圖片的訪問,資源圖片放在項目名稱\android\app\src\main\res\drawable 下麵 這裡的BadgeData.json 如下: 3.主要的文件 scrol ...
  • 我們在瀏覽淘寶京東等大型購物網頁時會經常出現許多圖片而圖片需要花費我們非常多的流量問題。 我們在寫網頁的時候怎麼解決這個問題呢?這時候就要用到我們圖片懶載入的問題,這樣不僅可以 解決流量問題,也提高了性能等等。 下麵我們就來看一下圖片的懶載入怎麼問題。 ...
  • 1.層級選擇器 後代選擇器 "父元素 後代元素" 比如:$("div p") 選取div元素下所有的p元素 子元素選擇器 "父元素 > 子元素" 比如:$("div>p") 選取div的子元素中的p元素 第一個向後兄弟元素 "元素名+兄弟元素" 比如:$("div+p") 選取div元素後的第一個p ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...