JavaWeb第三天--JavaScript

来源:https://www.cnblogs.com/power-lm/archive/2019/11/14/third_day.html
-Advertisement-
Play Games

JavaScript 1. JavaScript概述 1.1 JavaScript是什麼?有什麼作用? HTML:就是用來寫網頁的。(人的身體) CSS:就是用來美化頁面的。(人的衣服) JavaScript:前端大腦、靈魂。(人的大腦、靈魂) JavaScript是WEB上強大的腳本語言。 腳本語 ...


JavaScript

1. JavaScript概述

1.1 JavaScript是什麼?有什麼作用?

HTML:就是用來寫網頁的。(人的身體)

CSS:就是用來美化頁面的。(人的衣服)

JavaScript:前端大腦、靈魂。(人的大腦、靈魂)

JavaScript是WEB上強大的腳本語言。

腳本語言無法獨立運行,必須嵌入到其他語言中,結合使用。

  • 作用: 控制頁面特效顯示。

    例如:

    JS可以對HTML元素進行動態的控制。

    JS可以對錶單項進行校驗。

    JS可以控制CSS樣式。

1.2 JavaScript入門案例

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <script>
                //聲明變數a,並賦值
                var a = 10;
                //聲明變數b,並賦值
                var b = 20;
                //彈框變數a + 變數b的值
                alert(a + b);
            </script>
        </head>
        <body>
        </body>
    </html>

1.3 JavaScript的語言特征即編程註意事項

特征:

  • JavaScript無需編譯,直接被瀏覽器解釋執行。
  • JavaScript 無法單獨運行,必須嵌入到HTML代碼中運行。
  • JavaScript的執行過程由上到下一次執行。

註意:

  • JavaScript沒有訪問系統文件的許可權。
  • 由於JavaScript無需編譯,是由上到下依次解釋執行,所以在保證可讀性的情況下,允許使用鏈式編程。
  • JavaScript和Java沒有任何關係。

1.4 JavaScript的組成

  • ECMAScript(核心):規定了JS的語法和基本對象。
  • DOM文檔對象模型:處理網頁內容的方法和介面。
  • BOM瀏覽器對象模型:與瀏覽器交互的方法和介面。

2. JavaScript的引入方式

2.1 內部腳本

在當前網頁內部寫<script></script>標簽,script內部即可書寫JavaScript代碼。

格式:

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <script type="text/javascript">
                /*JavaScript代碼*/
            </script>
        </head>
        <body>
        </body>
    <html>

註:script標簽理論上可以書寫在HTML文件的任意位置。

2.2 外部引用

在HTML文檔中,通過<script src=""></script>標簽引入.js文件。

格式:

  • <script type="text/javascript" src="javascript文件路徑"></script>

示例:

<script type="text/javascript" src="demo.js"></script>

註:外部引用時script標簽內容體不能有script代碼,即使寫了也不會執行。

2.3 script標簽的放置位置

開發規範規定,script標簽的放置位置為:</body>結束標簽前
如圖所示:

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
        </head>
        <body>
            <h1>Hello</h1>
            <script>alert("Hello World
            ")</script>
        </body>
    </html>

優點:

  • 保證HTML展示內容優先載入,最後載入腳本,增強用戶體驗性。

3. JavaScript語法及規則

3.1 註釋

  • 單行註釋://
  • 多行註釋:/**/

示例:

    <script type="text/javascript">
        //單行註釋
        /*多行註釋*/
    </script>

3.2 變數

變數:標示記憶體中的一塊空間,用於存儲數據,且數據是可變的。

變數的聲明:

  • var 變數名;//變數賦予預設值,預設值為undefined。

變數的聲明和賦值:

  • var 變數名 = 值; //變數賦予對應的值。

在聲明JavaScript變數時,需要遵循以下命名規範:

  • 必須以字母或下劃線開頭,中間可以是數字、字元或下劃線。
  • 變數名不能包含空格等字元。
  • 不能使用JavaScript關鍵字作為變數名。如:function
  • JavaScript嚴格區分大小寫。

3.3 基本數據類型

類似於Java中的基本數據類型。

  • string 字元串類型。"" 和''都是字元串。JavaScript中沒有單個字元。
  • boolean 布爾類型。 固定值為true和false。
  • number 數字類型。 任意數字。
  • null 空。一個占位符。
  • undefined 未定義類型。該類型只有一個固定值,及undefined,便是變數聲明卻未定義具體的值。

註:因為undefined是從null中派生出來的,所以undefined == null。

JavaScript區別於Java,是弱類型語言,變數的使用不用嚴格遵循規範,所以一個變數聲明好之後,是可以賦予任意類型的值。

    <script type="text/javascript">
        var a ;
        a = 10;
        a = "10";
        a = true;
        alert(a);
    </script>

通過typeof運算符可以分辨變數值輸入哪種基本數據類型。

    <script type="text/javascript">
        var a ;
        a = 10;
        a = "10";
        a = true;
        alert(typeof(a));
    </script>

註:null屬於基本數據類型,typeof(null)->obj。

3.4 引用數據類型

引用數據類型通常叫做類(class),但在JavaScript中,因為不存在編譯過程,所以沒有類的概念,所處理的引用數據類型都是對象。

標準創建方式:

var str = new String(); //和Java相同

var str=new String;//JS獨有的方式

4. 運算符

4.1 比較運算符

運算符 描述 例子
== 等於 5 == 8為 false
=== 全等(值和類型) 5 === 5 為 true; 5 === "5" 為 false
!= 不等於 5 != 8 為 true
> 大於 5 > 8 為 false
< 小於 5 < 8 為 true
>= 大於或等於 5 >= 8 為 false
<= 小於或等於 5 <= 8 為 true

== 邏輯等,僅僅比對值。

=== 全等。比對值並且比對類型,如果值和類型都相同則為true,否則為false。

4.2 邏輯運算符

運算符 描述 例子
&& and (5 >1 && 5 < 8)為 true
|| or (5 < 1 || 5 > 8)> 為 false
! not !(5 == 8) 為 true

註:JavaScript邏輯運算符中沒有單個&、單個|。

5. 正則對象

5.1 RegExp對象的創建方式

var reg = new RegExp("表達式"); (開發中基本不用)

var reg=/^表達式$/; 直接量(開發中常用)

註:直接量存在邊界,即^代表開始,$代表結束。

5.2 test方法

正則對象.test(string)。

用來校驗字元串是否匹配正則。

全部字元匹配返回true;有字元不匹配返回false。

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <script>
                var reg = /^\s*$/;// 0~多個空格
                var flag = reg.test("  a  ");
                alert(falg);
            </script>
        </head>
        <body>
        </body>
    </html>

5.3 正則對象使用註意事項

  • /^表達式$/ 只要有無法成立正則的字元存在,即為false。全部符合為true。(檢查嚴格,適用於表單驗證)。
  • /表達式/ 只要有成立正則的字元存在,即為true。全部不符合為false。(檢查不嚴格,適用於查找,替換)。

6. JS數組對象

6.1 JS數組的特性

JS數組可以看作Java中的ArrayList集合。

  • 數組中的每一個成員沒有類型限制,即可以存放任意類型。
  • 數組的長度可以自動修改。

6.2 JS數組的四種創建方式

  • var arr=[1,2,3,"a",true];

    //常用的JS數組。長度5.
  • var arr = new Array();

    創建一個數組對象,數組長度預設為0。
  • var arr = new Array(4);

    數組長度是4,相當於開闢了長度為4的空間,每個元素是undefined。(僅在顯示數組時進行處理,undefined為了方便顯示變成了空字元串的形式,其值本質仍然是undefined。)
  • var arr = new Array(1,2);

    數組元素是1,2。

6.3 JS數組的常用屬性/方法

length 設置或返回數組中元素的數目
join() 把數組的所有元素放入一個字元串中,元素通過指定的分隔符進行分隔。
pop() 刪除並返回數組的最後一個元素
push() 向數組的末尾添加一個或更多元素,並返回新的長度。
reverse() 顛倒數組中元素的順序
    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <script type="text/javascript">
                var arr = ['a','b','c','d'];
                var result = arr.join("+");
                alert(result);//a+b+c+d
                alert(arr.length);//長度4;
                var arr2 = arr.reverse();

                alert(arr2);//d,c,b,a

                var temp = arr.pop();

                alert(temp);//結果:a;

                var len = arr.push('e','f','g');//追加多個元素。
                alert(len);//長度:6。
            </script>
        </head>
        <body>
        </body>
    </html>

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

-Advertisement-
Play Games
更多相關文章
  • 前情提要 "Android 8.1平臺SystemUI 導航欄載入流程解析" 9.0 改動點簡要說明 1、新增 StatusBarMobileView 替代 SignalClusterView ,用以控制信號欄顯示 同時增加的還有 StatusBarIconView 、 StatusBarWifiV ...
  • 一、Android SDK簡介 Android SDK(Software Development Kit,軟體開發工具包)被軟體開發工程師用於為特定的軟體包、軟體框架、硬體平臺、操作系統等建立應用軟體的開發工具的集合。它提供了 Android API 庫和開發工具構建,測試和調試應用程式。簡單來講, ...
  • Promise處理一系列非同步操作的應用框架,能夠保證順序執行一系列非同步操作,當出錯時可以通過catch捕獲錯誤進行處理。Promise框架也是很好的詮釋了swift的面相協議編程以及函數式編程 兩種類型 1Promise,2Guarantee 其中Guarantee沒有實現 CatchMixin ... ...
  • 項目地址: "Box" 文末掃碼獲取最新安裝包 。 前言 有將近一個月沒有更新文章了,一方面在啃 AOSP ,消化起來確實比較慢。在閱讀的過程中,有時候上來就會陷入源碼細節,其實這是沒有必要的。剛開始更多的應該從整體脈絡上去理解,摸清整個流程之後再去有針對性的看某些細節,才會事半功倍。下一篇應該會帶 ...
  • 一、偽元素選擇器 1.什麼是偽元素選擇器 偽元素選擇器作用給指定標簽的內容前面添加一個子元素,或者給指定標簽的內容後面添加一個子元素。 2.格式: 標簽名稱::before{ 屬性名稱:值; } 給指定標簽的內容前面添加一個子元素 標簽名稱::after{ 屬性名稱:值; } 給指定標簽的內容後面添 ...
  • 介紹 在 中`text align left center right`右。 由於簡單我就不再多的介紹了直接進入 屬性實踐了,如果大家是新手自己一定要去實踐哈,運行結果圖就不進行展示了,大家自己動動手哈。 左代碼塊 註意:預設就是向左對齊。 中代碼塊 右代碼塊 ...
  • color設置字體顏色 在 設置字體顏色之前,我們首先瞭解 在`CSS`中有幾種取值方式,一共有4種方式,若有不全還請在評論區告知謝謝,4種方式如下: 十六進位、十進位、 英文單詞、十六進位的縮寫。 現在讓我們進入字體顏色實踐,筆者以嵌入式的形式,將 屬性值為 中的字體顏色設置為紅色。 使用十六進位 ...
  • [TOC] CSS屬性相關 寬和高 width屬性可以為元素設置寬度 height屬性可以為元素設置高度 只有塊級標簽才可以設置長度,行內標簽設置了也沒有任何作用,只取決於文本內容大小 字體屬性 文本顏色 直接寫 顏色英文 color: red 直接利用pycharm提供的取色器 rgb(125,1 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...