JavaScript知識概要

JavaScript??

?1.簡介?? ?

JavaScript簡介
?? ??? ?JS是運行在瀏覽器端的一門腳本語言,一開始主要用來做瀏覽器驗證,但現在功能已經不止于此。
?? ??? ?所謂腳本語言就是指,代碼不需要編譯,直接運行,并且讀入一行運行一行
?? ??? ?
?? ??? ?JavaScript目前應用非常廣泛,例如:瀏覽器端的驗證,Ajax,客戶端等,甚至也有服務器端的JavaScript--node.js?? ??

2.編寫位置?? ???

?  (1)網頁內部
?? ??? ??? ?<script type="text/javascript">
?? ??? ??? ? alert("這是啥");
?? ??? ??? ? </script>
?? ??? ? (2)外部的.js文件

    JavaScript一般單獨寫在一個.js文件中,通過以下方法來引用
?? ??? ??? ?<script type="text/javascript"? src="script.js"></script>
?? ???? (3)基本語法
?? ??? ??? ? ①注釋
?? ??? ??? ? 單行注釋 //
?? ??? ??? ? 多行注釋 /**/
?? ??? ??? ? ②變量
?? ??? ??? ? Ⅰ聲明:JS是一門弱類型語言,聲明變量時不需要指定變量的類型,只需要使用var關鍵字
?? ??? ??? ??? ?例如:var a;
?? ??? ??? ??? ??? ?
?? ??? ??? ?Ⅱ賦值:
?? ??? ??? ??? ?JS是一門動態類型的語言,可以給一個變量賦任意類型的值,同時在使用過程中可以任意修改變量
?? ??? ??? ??? ?變量的類型
?? ??? ??? ??? ?a=123;
?? ??? ??? ??? ?a="hello";
?? ??? ??? ?
?? ??? ??? ?Ⅲ聲明和賦值同時進行
?? ??? ??? ??? ?var b=123;
?? ??? ??? ??? ?var c="hello";
?? ??? ??? ??? ?var d=true;
?? ??? ??? ?
?? ??? ??? ?③函數
?? ??? ??? ??? ?在JS中函數也是一個對象,也可以將一個函數的引用賦值給一個變量
?? ??? ??? ??? ?1)聲明函數使用function關鍵字
?? ??? ??? ??? ?第一種方式:
?? ??? ??? ??? ?var sum=function(a,b){
?? ??? ??? ??? ??? ?return a+b;
?? ??? ??? ??? ?};
?? ??? ??? ??? ?第二種方式:
?? ??? ??? ??? ?function sum2(a,b,c){
?? ??? ??? ??? ??? ?return a+b+c;
?? ??? ??? ??? ?};
?? ??? ??? ??? ?sum2(2,3,4);
?? ??? ??? ??? ?
?? ??? ??? ??? ?2)函數的調用:
?? ??? ??? ??? ??? ?-函數的引用+();
?? ??? ??? ??? ??? ?-sum(123,234)
?? ??? ??? ??? ??? ?-sum2(123,"abc",true)
?? ??? ??? ??? ?調用函數不會檢查參數類型和個數,所以在js中不存在重載這回事

例如:


?? ??? ??? ?
?? ??? ??? ?④對象
?? ??? ??? ??? ?Ⅰ對象的創建
?? ??? ??? ??? ??? ?(1)var obj=new Object();
?? ??? ??? ??? ??? ?(2)var obj ={}
?? ??? ??? ?
?? ??? ??? ??? ?Ⅱ動態的為對象添加屬性
?? ??? ??? ??? ??? ?對象.屬性名=屬性值
?? ??? ??? ??? ??? ?例:obj.name="張三";
?? ??? ??? ??? ??? ??? ?obj.age=16;
?? ??? ??? ??? ??? ??? ?obj.fun=function(){
?? ??? ??? ??? ??? ??? ??? ?alert("hello");
?? ??? ??? ??? ??? ??? ?};
?? ??? ??? ??? ?Ⅲ在創建對象時,直接添加屬性
?? ?????

  注意:鍵值對之間使用 “ ”隔開。

?

3.事件

  (1)用戶操作網頁或者瀏覽器所發生的交互行為稱為事件。比如:點擊按鈕,最小化窗口,修改文本框內容等。
?? ??? (2)JS為我們定義許多瀏覽器中的事件。比如:單擊、雙擊、移動 等。
?? ??? (3)我們可以通過為事件設置一個響應函數來對事件進行響應。可以通過兩種方式為元素綁定響應函數:
?? ??? ??? ?1)直接通過標簽的屬性來設置,這種方式是結構與行為耦合,不推薦使用
?? ??? ??? ??? ? <button οnclick="alert('hello')">按鈕</button>
?? ??? ??? ??? ? -這種方式叫做結構與行為耦合,不推薦使用這種方式
?? ??? ??? ?2)在<script>標簽來設置
?? ??? ??? ??? ?<button id="btn">按鈕</button>
?? ??? ??? ??? ?<script>
?? ??? ??? ??? ??? ?//獲取到按鈕的對象
?? ??? ??? ??? ??? ?var btn =document.getElementById("btn");
?? ??? ??? ??? ??? ?//為btn綁定一個單擊響應函數
?? ??? ??? ??? ??? ?btn.οnclick=function(){
?? ??? ??? ??? ??? ??? ?alert("hello");
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?</script>
?? ??? ??? ?3)幾種鼠標事件
?? ??? ??? ??? ?//鼠標單擊事件
?? ??? ??? ??? ?<button id="btn" οnclick="alert('你點我干嘛')">點我</button>
?? ??? ??? ??? ?

      鼠標單擊按鈕事件觸發

    
?? ??? ??? ??? ?//鼠標雙擊事件
?? ??? ??? ??? ?<button id="btn" οndblclick="alert('你點我干嘛')">點我</button>
?? ??? ??? ??? ?//鼠標移到按鈕上事件觸發
?? ??? ??? ??? ?<button id="btn" οnmοuseοver="alert('鼠標移動上來了!')">點我</button>
?? ??? ??? ??? ?//鼠標從按鈕上移走事件觸發
?? ??? ??? ??? ?<button id="btn" οnmοuseοut="alert('鼠標移走!')">點我</button>
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?

4.加載方式?

??????? (1)瀏覽器加載網頁代碼時是由上到下依次加載的。
?? ??? ?(2)如果我們在瀏覽器還尚未加載網頁中的元素,那么將無法確定,控制臺將會報錯。
?? ??? ?解決該問題有兩種方式:
?? ??? ??? ?1)將JS代碼編寫到body標簽的下邊。但是我們習慣上將JS、CSS等代碼都編寫在head標簽中,
?? ??? ??? ?這種形式不符合使用規則
?? ??? ??? ?2)將js代碼編寫到window.οnlοad=function(){}中,推薦使用方式
?? ??? ??? ?注意:編寫js時,上來就把window.οnlοad=function(){}寫上


?? ??? ???? 程序是一行一行執行的,如果var btn=document.getElementById("btn1");代碼之前沒有寫window.οnlοad=function(){}

那么在執行的時候是找不到body里面的id="btn1",因此window.οnlοad=function(){}作用就是加載完整個頁面之后再執行里面的內容。

  但是如果將javascript寫在body里面,之前已經加載完了id="btn1",所以var btn=document.getElementById("btn1");再運行就沒有問題了。

  注意:<button>標簽只能寫在body里面。

5.DOM編程?

??? DOM全稱:Document Object Model?? ?

??? DOM編程是JavaScript中非常重要的一部分內容 。??
?? ?DOM主要是通過JavaScript來控制網頁中的各種元素,從而達到使網頁可以和用戶進行動態交互的作用。
?? ?DOM的操作主要分為四部分:增、刪、改、查。
?? ?

? (1)document對象:
?? ???   ?document是一個文檔節點,代表整個文檔,所有節點都是它的后代節點。
?? ???   ?document也是window的對象的屬性,可以直接使用。

??? (2)節點類型:
?? ?? ? ? ? ?? ① 元素節點:HTML文檔中的HTML標簽
?? ??? ??????? ②文本節點:元素的屬性
?? ??? ? ? ? ? ③ 屬性節點:HTML標簽中的文本內容

  (3)節點屬性

  (4)元素節點的屬性:?? ??? ??? ??? ?

    1.獲取元素對象.屬性名?? ??? ??? ???

?    例:element.value
?? ??? ??? ??? ??? ?element.id
?? ??? ??? ??? ??? ?element.className
?? ??? ??? ???   2.設置元素對象.屬性名=新的值
?? ??? ??? ??? ?例:element.value="hello"
?? ??? ??? ??? ??? ?element.id="id01"
?? ??? ??? ??? ??? ?element.className="newClass"


?? ??? ??? ?其它屬性:
?? ??? ??? ??? ?innerHTML:元素節點通過該屬性獲取和設置標簽內部的html代碼
?? ??? ??? ??? ?nodeValue:文本節點可以通過nodeValue屬性獲取和設置文本節點的內容


?? ? (5)***DOM查詢
?? ??? ? 通過document對象查詢
?? ??? ????? document.getElementById()
?? ??? ??? ?-通過id屬性獲取一個元素節點對象
?? ??? ???? document.getElementsByTagName()
?? ??? ??? ?-通過標簽名獲取一組元素節點對象
?? ??? ???? document.getElementByName()
?? ??? ??? ?-通過name屬性獲取一組元素節點對象,一般用來獲取表單項
?? ?
?? ??? ?通過具體的元素對象查詢
?? ??? ??? ?element.getElementsByTagName
?? ??? ??? ?-查找當前元素節點內指定標簽名的子節點
??    element.childNodes
?? ??? ???? -查找當前節點的所有子節點
?? ??? ???? element.firstChild
?? ??? ???? -查找當前節點的第一個子節點
?? ??? ???? element.lastChild
?? ??? ???? -查找當前節點的最后一個子節點
?? ??? ???? element.parentNode
?? ??? ???? -查找當前節點的父節點
?? ??? ???? element.previousSibling
?? ??? ???? -查找當前節點的前一個兄弟節點
?? ??? ???? element.nextSibling
?? ??? ???? -查找當前節點的后一個兄弟節點
?? ?? 例: ????

注意:1.function myQuery(idStr,func){
?? ???   ?var btn=document.getElementById(idStr);
?? ??? ?  btn.οnclick=func;
?? ?? ? }

這段代碼為4個查詢中共有的內容,所以封裝成一個方法,下面直接調用就可以了,避免寫重復代碼,起到了簡化代碼的作用。

  2.在查詢? “#city的所有子節點” 的時候,其實只有四個--北京,上海,東京,首爾;但是在用火狐瀏覽器和谷歌瀏覽器運行時會把

節點與節點之間的空格也當作了一個節點,所有此時應該根據元素節點的屬性,用if語句判斷一下if(liEle5[i].nodeType==1){} ,當nodeType==1時才是元素節點。


??
?? (6)***DOM增刪改
?? ??? ??? ??? ①創建元素節點
?? ??? ??? ??? ?document.createElement(標簽名)
?? ??? ??? ? ②添加子節點
?? ??? ??? ??? ?父節點.appendChild(子節點)
?? ??? ??? ? ③插入節點
?? ??? ??? ??? ?父節點.insertBefore(新節點,舊節點)
?? ??? ??? ? ④替換節點
?? ??? ??? ??? ?父節點.replaceChild(新節點,舊節點)
?? ??? ??? ? ⑤刪除節點
?? ??? ??? ??? ?父節點.removeChild(子節點)
?? ??? ??? ??? ?子節點.parentNode.removeChild(子節點) *****
?? ??? ??? ? ⑥讀寫元素內部HTML代碼
?? ??? ??? ??? ?讀取
?? ??? ??? ??? ??? ?元素.innerHTML
?? ??? ??? ??? ?設置
?? ??? ??? ??? ???? 元素.innerHTML = 新值

需要注意點:在設置元素節點時有以下兩種方式:

    1.document.getElementById("bj").innerHTML = "天津";
?? ??? ??? ?? 2.document.getElementById("bj").firstChild.nodeValue="天津";

? 請參照以上(4)元素節點的屬性中其他屬性部分。

轉載于:https://www.cnblogs.com/double-s/p/7801886.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454414.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454414.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454414.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機文檔xsl,XSL-FO 文檔

XSL-FO 文檔XSL-FO 文檔XSL-FO 文檔是帶有輸出信息的 XML 文件。XSL-FO 文檔存儲在以 .fo 或 .fob 為文件擴展名的文件中。您也可以把 XSL-FO 文檔存儲為以 .xml 為擴展名的文件&#xff0c;這樣做的話可以使 XSL-FO 文檔更易被 XML 編輯器存取。XSL-FO 文檔結構XSL-FO 的文檔結…

vue項目cordova打包的android應用

準備工作nodejs、cordova、AndroidStudio這些在上一篇文章中已經說過了&#xff0c;這里就不重復說明。以此文記錄vue項目用cordova打包移動app的方法。 1.創建一個cordova項目&#xff0c;如創建一個名為testapp的工程&#xff1a;cordova create testapp 2.添加安卓平臺 cord…

H.264視頻開發---代碼移植

基于DSP系統開發的視頻編解碼系統&#xff0c;國內幾乎都是走的移植&#xff0c;優化的路線&#xff0c;并且移植的代碼&#xff0c;都是開源的。畢竟花費大量的人力&#xff0c;物力去開發一套自己的代碼&#xff0c;并不見得比一些成熟的開源代碼效率更高&#xff0c;健壯性更…

Django REST framework 源碼解析

先放圖&#xff0c;放圖說話&#xff0c;可能有點長 主流程 這個顏色 從setting導入默認數據流程是 這個顏色 主流程大概流程寫一下&#xff1a;as_view 實際返回view&#xff0c;并把參數{"get":"list","post":"create"}傳遞給view…

-9 逆序輸出一個整數的各位數字_leetcode兩數相加(大整數相加)

題目來源于leetcode第二題兩數相加。題目描述給出兩個非空的鏈表用來表示兩個非負的整數。其中&#xff0c;它們各自的位數是按照逆序的方式存儲的&#xff0c;并且它們的每個節點只能存儲一位數字。如果&#xff0c;我們將這兩個數相加起來&#xff0c;則會返回一個新的鏈表來…

計算機如何添加管理員權限,電腦使用代碼如何添加管理員權限

我們在使用電腦運行某些軟件的時候&#xff0c;可能需要用到管理員權限才能運行&#xff0c;通常來說直接點擊右鍵就會有管理員權限&#xff0c;但最近有用戶向小編反饋&#xff0c;在需要管理員權限的軟件上點擊右鍵沒有看到管理員取得所有權&#xff0c;那么究竟該如何才能獲…

mysql選擇數據庫創建數據庫

MySQL 選擇數據庫 在你連接到 MySQL 數據庫后&#xff0c;可能有多個可以操作的數據庫&#xff0c;所以你需要選擇你要操作的數據庫。 從命令提示窗口中選擇MySQL數據庫 在 mysql> 提示窗口中可以很簡單的選擇特定的數據庫。你可以使用SQL命令來選擇指定的數據庫。 實例 以下…

英語面試技巧以及準備工作

如果你提前知道了電話面試的時間&#xff0c;則可以在面試時把簡歷、coverletter放在你旁邊的桌子上&#xff0c;直接運用里面的句子回答問題。一些基本的問題&#xff0c;你可以事先準備好答案。通常&#xff0c;在電話英語面試的時候會提道&#xff1a;  please tell me som…

sql注入問題

${}拼接sql&#xff0c;會引起sql注入&#xff0c;sql注入例如&#xff1a; select * from user where name like ‘%’ or 11 or ‘%’&#xff1b; 這種情況下&#xff0c;論name為什么都可以執行 轉載于:https://www.cnblogs.com/mengyinianhua/p/7649325.html

Python 面向對象之雙下方法,內置函數

isinstance和issubclass isinstance(obj,cls) # 檢查是否obj是否是類 cls 的對象 class Foo(object):passobj Foo()isinstance(obj, Foo) # ture issubclass(sub, super) # 檢查sub類是否是 super 類的派生類 class Foo(object):passclass Bar(Foo):passissubclass…

teechart繪制實時曲線_快速學會CAD繪制傳輸線路圖紙

一工具CAD工程設計軟件二方法和步驟萬事開頭難&#xff0c;遇到不懂的知識剛開始都有畏難的情緒&#xff0c;只要有決心學習&#xff0c;誠心想學會一項技能&#xff0c;那學會學好它就只是時間問題了。我們常常面臨時間緊、需要快速入門甚至熟練地解決工作中實際情況的問題&am…

彝文計算機,試論計算機彝文字符編碼的轉換.pdf

試論計算機彝文字符編碼的轉換.pdf第17卷 第1期 云南民族大學學報(自然科學版) V01&#xff0e;17 No&#xff0e;12008年1月 Journal of Yunnan Nationalities University(Natural Sciences Edition) Jan&#xff0e;2o08試論計算機彝文字符編碼的轉換李金發(紅河學院人文學院…

ActiveMQ(07):ActiveMQ結合Spring開發--建議

1、Camel框架支持大量的企業集成模式&#xff0c;可以大大簡化集成組件間的大量服務和復雜的消息流。而Spring框架更注重簡單性&#xff0c;僅僅支持基本的最佳實踐。 2、Spring消息發送的核心架構是JmsTemplate&#xff0c;隔離了像打開、關閉Session和Producer的繁瑣操作&…

使用ajax獲取用戶所在地的天氣

1.要獲取用戶歸屬地的天氣&#xff0c;首先得獲取用戶所在的市區&#xff0c; 這里先獲取用戶的IP&#xff0c;通過IP獲取IP的歸屬地&#xff0c;從而得到用戶 地址。 獲取客戶端ip: js: <scripttype"text/javascript" src"http://pv.sohu.com/cityjson?ieu…

Python 之協程

之前我們學習了線程、進程的概念&#xff0c;了解了在操作系統中進程是資源分配的最小單位,線程是CPU調度的最小單位。按道理來說我們已經算是把cpu的利用率提高很多了。但是我們知道無論是創建多進程還是創建多線程來解決問題&#xff0c;都要消耗一定的時間來創建進程、創建線…

ip變換器蘋果系統_加密鎖能為高鐵做什么?鐵路電力變換器系統告訴您

代表國之重器的高鐵&#xff0c;是怎樣保護他們在軟件上投資的專有技術不被仿冒、逆向工程和篡改呢&#xff1f;與一般的軟件保護加密不同&#xff0c;高鐵運行中的實時控制器對物理環境有著嚴苛的要求&#xff0c;如鐵路電力變換器系統&#xff0c;須滿足典型工業應用的擴展溫…

華為服務器ibmc怎么裝系統,華為服務器安裝操作系統

《華為服務器安裝操作系統》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《華為服務器安裝操作系統(11頁珍藏版)》請在人人文庫網上搜索。1、華為服務器安裝操作系統 1把網線接到服務器管理口上&#xff0c;2288服務器管理口在服務器背后中下 部位置&#xff0c;有Mg…

英語面試(自我介紹,電話面試..)

大凡找工作的人&#xff0c;都有對面試的擔心&#xff0c;而英語面試最令人頭痛。面試氣氛總是緊張的&#xff0c;一緊張就容易出錯&#xff0c;中文“臺詞”都會結巴&#xff0c;何況英語&#xff01; 可俗話說&#xff0c;養兵千日&#xff0c;用兵一時&#xff0c;學了那么多…

服務端渲染與 Universal React App

隨著 Webpack 等前端構建工具的普及&#xff0c;客戶端渲染因為其構建方便&#xff0c;部署簡單等方面的優勢&#xff0c;逐漸成為了現代網站的主流渲染模式。而在剛剛發布的 React v16.0 中&#xff0c;改進后更為優秀的服務端渲染性能作為六大更新點之一&#xff0c;被 React…

zxing .net 多種條碼格式的生成

下載地址&#xff1a;http://zxingnet.codeplex.com/ zxing.net是.net平臺下編解條形碼和二維碼的工具&#xff0c;使用非常方便。 本文主要說明一下多種類型條碼的生成。 適用的場景&#xff0c;標簽可視化設計時&#xff0c;自定義條碼類型&#xff0c;預覽。 遍歷zxing支持的…