使用jQuery快速高效製作網頁交互特效——01 第一章 JavaScript基礎

来源:https://www.cnblogs.com/HQING/archive/2018/07/30/9389860.html
-Advertisement-
Play Games

1、 JavaScript(弱類型語言):是一種描述性語言,也是一種基於對象(Object)和事件驅動(Event Driven)的,並具有安全性能的腳本語言。 特點:1、主要用來在HTML頁面中添加交互行為。 2、是一種腳本語言,語法和Java類似。 3、一般用於編寫客戶端的腳本。 4、是一種解釋 ...


1、 JavaScript(弱類型語言):是一種描述性語言,也是一種基於對象(Object)和事件驅動(Event Driven)的,並具有安全性能的腳本語言。

特點:1、主要用來在HTML頁面中添加交互行為。

         2、是一種腳本語言,語法和Java類似。

         3、一般用於編寫客戶端的腳本。

         4、是一種解釋性語言,邊執行邊解釋。

2、JavaScript的組成:

組成:1、ECMAScript標準:規定了腳本語言的標準,主要描述:語法、變數和數據類型、運算符、邏輯控制語句、關鍵字、保留字、對象,是一個描述,規定了語言腳本的所有屬性、方法和對象的標準,在使用web客戶端腳本語言編碼時一定要遵守此標準;

         2、瀏覽器對象模型(Browser Object Model)(BOM):提供獨立於內容與瀏覽器進行交互的對象;

         3、文檔對象模型(Document Object Model)(DOM):訪問和操縱HTML文檔;

組成:

 

3、 JavaScript的基本結構:

語法:

       <script type="text/javascript">

                 JavaScript 語句;

       </script >

註:type是<scrip>標簽的屬性,用於指定文本使用的語言類別為text/javascript

    有的網頁中預設type="text/javascript",這種寫法是正確的,因為HTML5中可以省略type屬性HTML5默為"text/javascript";

JavaScript:寫入 HTML 輸出: document.write("內容");

  註:<script>…</script>可以包含在文檔中的任何地方,只要保證這些代碼在被使用前已讀取並載入到記憶體即可;

       建議放在</body>的前面;

4、JavaScript的執行原理:

 

分析:★瀏覽器客戶端向伺服器發送請求:一個用戶瀏覽器的地址輸入要訪問的頁面(頁面中包含JavaScript程式);

      ★數據處理:服務端將某個包含JavaScript的頁面進行處理;

      ★發送響應:服務端將包含有JavaScript的HTML文件處理頁面發送到瀏覽器客戶端,然後由瀏覽器客戶端從上到下逐條解析HTML標簽和JavaScript,並將頁面效果呈現給用戶;

使用客戶端腳本的好處:

     ●包含JavaScript的頁面只要下載一次即可,這樣能減少不必要的網路通信;

     ●JavaScript程式由瀏覽器客戶端執行,而不是由伺服器執行,因此能減輕伺服器的壓力;

網頁中引用JavaScript的方式:

          ●內部JavaScript 文件:直接使用<script>標簽將JavaScript代碼加入HTML文檔中;

          ●使用外部JavaScript 文件;

                     eg:<script src="export.js"  type="text/javascript"></script>

          ●直接在HTML標簽中;

                     eg:<input name="btn" type="button" value="彈出消息框" onclick="javascript:alert('歡迎你');"/>

          註:alert("輸出語句"),提示對話框:prompt( ”提示語句”, 給的預設值):單引號 雙引號都可以

三種方式的應用場合:

      ●內部JavaScript文件適用於JavaScript特效代碼量少,僅用於單個頁面;

      ●外部js文件則適用於代碼較多,重覆應用於多個頁面;

      ●直接在HTML標簽中寫JavaScript則適用於極少代碼,僅用於當前標簽,會增加代碼,很少使用;

5、JavaScript核心語法:

變數(變數名區分大小寫):

◆var -  用於聲明變數的關鍵字;

      ◆變數可以不經聲明而直接使用,

             但這種方法很容易出錯,也很難查找排錯,不推薦使用

      ●先聲明變數再賦值

            eg: var   width;

                    width = 5;

      ●同時聲明和賦值變數:

            eg:var catName= "皮皮";

                   var x, y, z = 10;

      ●不聲明直接賦值:

            eg:width=5;

數據類型:

  • ●undefined(未定義類型):

            eg:var width;變數width沒有初始值,將被賦予值undefined

  • ●null(空類型):表示一個空值,與undefined值相等
  • ●number(數值類型):

             eg:var iNum=23;   //整數

                    var iNum=23.0;   //浮點數

  • ●boolean(布爾類型):true和false;
  • ●String(字元串類型):一組被引號(單引號或雙引號)括起來的文本;

              eg;var string1="This is a string";

 

typeof運算符:typeof檢測變數的返回值:

語法:typeof(變數或值)

 typeof運算符返回值如下

    undefined:變數被聲明後,但未被賦值

    String:用單引號或雙引號來聲明的字元串

    boolean:true或false

    number:整數或浮點數

    object:javascript中的對象、數組和null

 

運算符號:

     ===表示恆等(嚴格比較,數據類型不匹配就返回false);

     !==表示不恆等;

 

 

String對象:

  • ●字元串對象.length

            Eg:var str="this is JavaScript";

                  var strLength=str.length;    //長度是18

方法的調用:

        ●字元串對象.方法名();

 

方法名稱

說      明

charAt(index)

返回在指定位置的字元

indexOf(str,index)

查找某個指定的字元串在字元串中首次出現的位置,找到返回索引值,否則返回-1

substring(index1,index2)

返回位於指定索引index1和index2之間的字元串,並且包括索引index1對應的字元,不包括索引index2對應的字元

split(str)

將字元串分割為字元串數組

toLowerCase()

將字元串轉換為大寫

toUpperCase()

將字元串轉換為小寫

數組:

  • ●創建數組語法:

               eg: var  數組名稱 = new Array(size);//Array:數組的關鍵字;size:表示數組中可存放的元素總數

  • ●為數組賦值:聲明數組時可以為數組元素直接賦值;

             //賦值方式1:

                  eg:var fruit= new Array("apple", "orange", " peach","banana");

            //賦值方式2:

                    eg:var fruit=new Array(1);

                             fruit[0]=”apple”;

            //賦值方式3:

                    eg:var fruit= ["apple", "orange", " peach","banana"];

         ●訪問數組元素:

                     數組名[下標]

  ●數組的常用屬性和方法:

類別

描述

屬性

設置或返回數組中元素的數目

方法

把數組的所有元素放入一個字元串,通過一個的分隔符進行分隔

對數組排序

向數組末尾添加一個或更多 元素,並返回新的長度

更多方法可查閱JavaScrpt Array對象參考手冊:http://www.w3school.com.cn/js/jsref_obj_array.asp

 

邏輯控制語句:

 if條件語句

     if(條件)

{

        //JavaScript代碼;

}

else

{

        //JavaScript代碼;

}

*switch多分支語句

switch (表達式){    

case 常量1 :

       //JavaScript語句1;

    break;

   case 常量2 :

      //JavaScript語句2;

     break;

      ...

   default :

       //JavaScript語句3;   

}

 *for迴圈語句

  for(初始化;  條件;  增量)

 {

          JavaScript代碼;
 }

*do-while迴圈語句

do 

 {

          JavaScript代碼;

} while(條件)

*while迴圈語句

while(條件)

 {

          JavaScript代碼;

}

*for-in迴圈

    語法:

        for(變數 in 對象){

             //JavaSacript語句;

          }

Eg

var fruit=[ "apple", "orange", "peach","banana"];

for(var i in fruit){

document.write(fruit[i]+"<br/>");

}

結果:

 

中斷迴圈:

◆break:

    立刻退出整個迴圈;

◆continue:

   退出當前迴圈,

    進入下一次迴圈;

註釋:

   單行註釋以 // 開始,以行末結束

   多行註釋以 /* 開始,以 */ 結束,符號 /*…… */ 指示中間的語句是該程式中的註釋;

常用的輸入/輸出:

  警告:alert()

         alert("提示信息");

     註意:console.log();建議使用此方法列印;

 提示:prompt():彈出一個提示你對話框,

         等待用戶輸入一行數據;

eg:三種方式:

   prompt("提示信息", "輸入框的預設信息");

   prompt("請輸入你喜歡的顏色","紅色");

   prompt("請輸入你喜歡的顏色","");

   prompt("請輸入你喜歡的顏色");

       註:(第二個參數省略會顯示undefined)

 

語法約定:

 1、代碼區分大小寫:

     ★JavaScript的關鍵字,永遠都是小寫;eg:for、if;

     ★內置對象;eg:Date、Math都是以大寫字母開頭;

     ★對象名通常都小寫;

 2、變數、對象和函數的名稱:

     ★名稱可以包括大小寫字母、數字、下劃線、美元符號;

     ★但是必須以字母、下劃線、美元符號($)開頭;

3、 分號:

      ★JavaScript運行開發這自行決定是否以分號結束一行代碼;

      ★如果沒有分號,JavaScript就將行代碼的結尾看作該語句的結尾;

 

JavaScript關鍵字和保留字:

●不能把關鍵字、保留字、true、false和null用作標識符。

●js中的關鍵字可用於表示控制語句的開始或結束,或者用於執行特定操作等。按照規則,關鍵字也是語言保留的,不能用作標識符。

以下就是ECMAScription的全部關鍵字(帶*號上標的是第5版新增的關鍵字):

                break、else、new、var、 case、  finally 、 return、 void 、 catch  、for 

                switch 、 while 、 continue、  function  、this 、 with 、default 、 if

                throw 、 delete 、 in 、  try 、do 、 instranceof、  typeof、debugger*

●ECMA還描述了另外一組不能用作標識符的保留字。儘管保留字在這門語言中還沒有任何特定的用途,但它們有可能將來被用作關鍵字。

下麵是ECMA第3版定義的全部保留字:

                 abstract 、 enum   、int 、 short 、 boolean  、export  、interface、  static 

                 byte  、extends 、 long 、 super 、 char 、 final  、native  、synchronized

                 class  、float 、 package  、throws 、 const  、goto  、private 、transient 

                debugger 、 implements  、protected 、 volatile 、 double  、import  、public

●第5版把在非嚴格模式下運行時的保留字縮減為下列這些:

                 class、enum、extends、super、const、export、import

●在嚴格模式下,第5版還對以下保留字施加了限制:

                    implements、package、public、interface、private、static、let、protected、yield

註:let和yield是第5版新增的保留字;其他保留字都是第3版定義的

6、程式調試:

Chrome開發工具的八個模塊:

Element 標簽頁: 用於查看和編輯當前頁面中的 HTML 和 CSS 元素。

Network 標簽頁:用於查看 HTTP 請求的詳細信息,如請求頭、響應頭及返回內容等。

Source 標簽頁:用於查看和調試當前頁面所載入的腳本的源文件。

TimeLine 標簽頁: 用於查看腳本的執行時間、頁面元素渲染時間等信息。

Profiles 標簽頁:用於查看 CPU 執行時間與記憶體占用等信息。

Resource 標簽頁:用於查看當前頁面所請求的資源文件,如 HTML,CSS 樣式文件等。

Audits 標簽頁:用於優化前端頁面,加速網頁載入速度等。

Console 標簽頁:用於顯示腳本中所輸出的調試信息,或運行測試腳本等。

Chrome開發人員工具五個圖標代表的含義:

、停止斷點調試

、單步調試,不進入函數體內部

、單步調試,進入函數體內部

、跳出當前函數

、禁用所有的斷點,不做任何調試

alert()方法:可以通過此方法將不確定的數據信息以信息框的方式展示,以此來判斷出現錯誤的位置;

7、 函數:

  函數的含義:類似於Java中的方法,是完成特定任務的代碼語句塊

  使用更簡單:不用定義屬於某個類,直接使用

  函數分類:系統函數和自定義函數

系統函數:

  parseInt ("字元串"):將字元串轉換為整型數字

       如: parseInt ("86")將字元串“86“轉換為整型值86

  parseFloat("字元串"):將字元串轉換為浮點型數字

       如: parseFloat("34.45")將字元串“34.45“轉換為浮點值34.45

   isNaN(): 用於檢查其參數是否是非數字

自定義函數:

1、定義函數:

  語法:

     function 函數名(參數1,參數2,參數3,…){        // function 是定義函數關鍵字必須存在;參數可有可無:有參函數和無參函數;

           //JavaScript語句

            [return 返回值]         //可有可無;return用來規定函數返回的值;

}                            //{}定義了函數的開始和結束;

2、調用函數:函數調用一般和表單元素的事件一起使用;

調用格式:事件名= "函數名( )" ;

8、變數的作用域:全局變數和局部變數;

9、事件:

名稱

說明

  • onload

一個頁面或一幅圖像完成載入

  • onlick

滑鼠單擊某個對象

  • onmouseover

滑鼠指導移到某元素上

  • onkeydown

某個鍵盤按鍵被按下

  • onchange

域的內容被改變


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

-Advertisement-
Play Games
更多相關文章
  • 最近在使用這個插件的過程中發現一個bug: 不支持 含有小數的形式。 查看源碼後,修改了下其中的正則,使其支持小數形式(66.66px、.6px )。 作者的源碼最近一次更新都在兩年前,所以就簡單的記錄下 插件地址:https://www.npmjs.com/package/gulp-px2rem- ...
  • 同步請求:發送方發送數據包後,等待接收方發迴響應之後,才能發送下一個數據包的通信方式。 非同步請求:發送方發送數據包後,不用等待接收方發迴響應,就可以發送下一個數據包的通信方式。 同步通信:要求通信雙方在相同的時鐘頻率下,並且準確協調,是通過共用單個時鐘或定時脈衝源來保證雙方準確同步,效率高。 非同步通 ...
  • 1>對於有經驗得JavaScript開發者來說this也是一個非常難以理解的複雜機制,在此簡單分析一下 this的指向在函數的定義的時候是確定不了的,只有在函數執行的時候才能確定指向誰,實際上this最終指向的是調用他的那個對象(運行時) 2>搞清楚js裡面,函數的集中調用方法 總結:誰調用了這個函 ...
  • 不知道你們遇沒遇到過這個問題 就是當你給一個元素 添加touchstart touchmove touchend 的時候 比如box 並且子元素box有被父元素overflow隱藏的部分 父元素高度 500px 子元素高度 1500px 當你滑鼠沒有在子元素上點擊 移動 鬆開滑鼠 (向上拉的時候) ...
  • 最近幾年隨著h5的興起,複雜的h5動畫,甚至是交互動畫類型的產品不斷涌現,尤其在課件產品方面,很多公司都有相關需求,最近很多h5開發工程師想瞭解相關方面的技術。 針對h5,如果是簡單的動畫效果,可以考慮css3來實現,如果是較為複雜的動畫效果,比如有很多特效,動畫時長比較長,那麼就需要h5的動畫引擎 ...
  • 當你想要做成這種佈局效果的時候 紫色框裡面的內容那樣 它是一個列表 li元素是塊級元素 預設大小是父元素ul的寬 並且換行 如果li沒有背景的話那就不用管了 可是問題來了它不但有背景 而且是根據文字自適應的寬高 這就是inline-block類型的功能了 那麼想讓li是inline-block 設置 ...
  • 有的時候,我們會在JS框架中看到這行 (function(window, undefined) {})(window) ,它是做什麼用的,我們來分析下它 首先這就是一個匿名函數,立即執行它 為這麼要這樣寫,有什麼作用 對js進行壓縮的時候 均可以替換成其他簡寫字元,從而減少文件大小,因為他們被視為局 ...
  • webpack4.x css壓縮,optimize-css-assets-webpack-plugin mini-css-extract-plugin ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...