初學JavaScript總結

0 JavaScript

html完成了架子,css做了美化,但是網頁是死的,需要給他注入靈魂,所以接下來需要學習JavaScript,這門語言會讓頁面能夠和用戶進行交互。JavaScript又稱為腳本語言,可以通過腳本實現用戶和頁面的交互。

1 引入方式

兩種引入方式:

  1. 內部腳本,將js代碼定義在html頁面中
  2. 外部腳本,將js代碼定義在外部js文件中,然后引入html頁面中
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>快速上手</title><!--內部腳本--><!-- <script>alert("hello js");alert("hello,kkk.");</script> --><script src="./js/hellojs.js"></script>
</head>
<body><!--js引入方式:1.內部腳本:js定義在html中2.外部腳本:--></body>
<!--一般將js代碼放到<head></head>標簽中,但建議放到</body>下,可以明顯的改善網頁速度
-->
<!--這里也可以引入javascript-->
<!-- <script>alert("hello js111")</script> -->
</html>

?2 基礎語法

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js基礎語法</title><script>//基本語法//1.區分大小寫//2.結尾的分號可以不寫//3.<script>變遷可以寫在body中//4.大括號表示代碼塊//5.輸出語句//5.1使用window.alert()寫入警告框//window.alert('warning...');//5.2使用document.write()直接在html中輸出// document.write("output statements.");//5.3console.log()寫入瀏覽器控制臺// console.log("printing log...")//6.變量// 6.1 var 定義的是全局變量,可以重復聲明var a = 20;var a = "nihao";alert(a);// 6.2 let 定義的局部變量,不能重復定義{let b = "asdfasdf";// let b = 3;alert(b);}// alert(b);// 6.3 const定義的是常量,不可以改變const aa = 32;alert(aa);// aa = 33;控制臺報錯//7.運算符//==,會進行類型轉化,===不會進行類型轉換// 8類型:// 基本類型:boolean,Null,Undefined,Number,String,Symbol// 引用類型:Array,Object,Function,Date...// 8.1數字類型轉換為boolean類型//數值類型中,0和NaN均為falseif(0 == false){alert("0 is false");}if(NaN){alert("NaN is true");}else{alert("NaN is false");}//空字符串為false,其他均為trueif(""){alert("'' is true");}else{alert("'' is false");}if(" "){alert("' ' is true");}if(null){alert("null is true");}else{alert("null is false");}if(undefined){alert("undefined is true");}else{alert("undefined is false");}</script>
</head>
<body></body>
</html>

?3 函數

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js函數</title><script>// 函數定義function add(a,b){return a+b;}var minus = function(a,b){return a-b;}//函數調用var res = add(1,2);alert(res);var res = minus(1,2);alert(res);</script>
</head>
<body></body>
</html>

4 JavaScript對象

4.1數組

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js數組</title><script>//定義數組var arr = new Array(1,2,3,4);var arr1 = ['a','3',2,'dfd'];arr1[40] = 'hell'console.log(arr[0]);console.log(arr[3]);console.log(arr1[3]);console.log(arr1.length);//forEach()僅僅遍歷有值的元素arr1.forEach(function(e){console.log(e);});</script>
</head>
<body>
</body>
</html>

4.2 String對象

<script>//創建字符串對象//var str = new String("Hello String");var str = "  Hello String    ";console.log(str);
</script>

4.3 JSON對象

1.自定義對象格式

var 對象名 = {屬性名1: 屬性值1, 屬性名2: 屬性值2,屬性名3: 屬性值3,函數名稱: function(形參列表){}
};

2.使用自定義對象

對象名.屬性名

3.調用函數

對象名.函數名()

舉例:

<script>//自定義對象var user = {name: "Tom",age: 10,gender: "male",eat: function(){console.log("用膳~");}}console.log(user.name);user.eat();
<script>

簡化格式

    var user = {name: "Tom",age: 10,gender: "male",// eat: function(){//      console.log("用膳~");//  }eat(){console.log("用膳~");}}

4.JSON對象

JSON對象:JavaScript Object Notation,JavaScript對象標記法。是通過JavaScript標記法書寫的文本。其格式如下:

{"key":value,"key":value,"key":value
}

值得注意的是:key必須要用雙引號標記(不可以是單引號,更不可以沒有),value可以是任意數據類型!!!

應用:

json格式的文本通常作為前后端交互的數據載體,是一個結構化的數據格式,方便轉換。

注意:json本質是一個字符串,需要將其轉為對象,則需要js的轉換。

//json字符串 <===>json對象//jsonstr是一個json格式的字符串
var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';//obj是一個json對象
var obj = JSON.parse(jsonstr);//obj ---> json字符串
var jstring = JSON.stringify(obj);

4.4 BOM對象

BOM對象:全稱是Browser Object Model,翻譯過來是瀏覽器對象模型。也就是JavaScript將瀏覽器的各個組成部分封裝成了對象。我們要操作瀏覽器的部分功能,可以通過操作BOM對象的相關屬性或者函數來完成。例如:我們想要將瀏覽器的地址改為http://www.baidu.com,我們就可以通過BOM中提供的location對象的href屬性來完成,代碼如下:location.href='http://www.baidu.com'

BOM提供了如下5個對象:

  1. Window:瀏覽器窗口對象
  2. Navigator:瀏覽器對象
  3. Screen:屏幕對象
  4. History:歷史記錄對象
  5. Location:地址欄對象

?1.Window對象

常用

window.alert('hello');

window對象提供了其他屬性:

  • history:用于獲取history對象
  • location:用于獲取location對象
  • Navigator:用于獲取Navigator對象
  • Screen:用于獲取Screen對象

window提供常用函數:

  • alert():顯示帶有一段消息和一個確認按鈕的警告框。
  • comfirm():顯示帶有一段消息以及確認按鈕和取消按鈕的對話框。
  • setInterval():按照指定的周期(以毫秒計)來調用函數或計算表達式。
  • setTimeout():在指定的毫秒數后調用函數或計算表達式。

2.Location對象

//獲取瀏覽器地址欄信息
alert(location.href);
//設置瀏覽器地址欄信息
location.href = "https://www.itcast.cn";

?4.5 DOM對象

DOM:Document Object Model 文檔對象模型。也就是 JavaScript 將 HTML 文檔的各個組成部分封裝為對象。

作用:

  • 改變 HTML 元素的內容

  • 改變 HTML 元素的樣式(CSS)

  • 對 HTML DOM 事件作出反應

  • 添加和刪除 HTML 元素

1.獲取dom對象

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS-對象-DOM</title>
</head><body><img id="h1" src="img/off.gif">  <br><br><div class="cls">傳智教育</div>   <br><div class="cls">黑馬程序員</div>  <br><input type="checkbox" name="hobby"> 電影<input type="checkbox" name="hobby"> 旅游<input type="checkbox" name="hobby"> 游戲
</body><script>//1. 獲取Element元素//1.1 獲取元素-根據ID獲取// var img = document.getElementById('h1');// alert(img);//1.2 獲取元素-根據標簽獲取 - div// var divs = document.getElementsByTagName('div');// for (let i = 0; i < divs.length; i++) {//     alert(divs[i]);// }//1.3 獲取元素-根據name屬性獲取// var ins = document.getElementsByName('hobby');// for (let i = 0; i < ins.length; i++) {//     alert(ins[i]);// }//1.4 獲取元素-根據class屬性獲取// var divs = document.getElementsByClassName('cls');// for (let i = 0; i < divs.length; i++) {//     alert(divs[i]);// }//2. 查詢參考手冊, 屬性、方法var divs = document.getElementsByClassName('cls');var div1 = divs[0];div1.innerHTML = "傳智教育666";</script>
</html>

5 JavaScript事件

什么是事件呢?HTML事件是發生在HTML元素上的 “事情”,例如:

  • 按鈕被點擊

  • 鼠標移到元素上

  • 輸入框失去焦點

  • ........

而我們可以給這些事件綁定函數,當事件觸發時,可以自動的完成對應的功能。這就是事件監聽。例如:對于我們所說的百度注冊頁面,我們給用戶名輸入框的失去焦點事件綁定函數,當我們用戶輸入完內容,在標簽外點擊了鼠標,對于用戶名輸入框來說,失去焦點,然后執行綁定的函數,函數進行用戶名內容的校驗等操作。JavaScript事件是js非常重要的一部分,接下來我們進行事件的學習。那么我們對于JavaScript事件需要學習哪些內容呢?我們得知道有哪些常用事件,然后我們得學會如何給事件綁定函數。所以主要圍繞2點來學習:

  • 事件綁定

  • 常用事件

?5.1 事件綁定

js提供了2種事件綁定的方式:

  1. 通過html標簽中的事件屬性進行綁定
  2. 通過DOM中的Element元素的事件屬性進行綁定
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS-事件-事件綁定</title>
</head><body><input type="button" id="btn1" value="事件綁定1" onclick="on()"><input type="button" id="btn2" value="事件綁定2">
</body><script>function on(){alert("按鈕1被點擊了...");}document.getElementById('btn2').onclick = function(){alert("按鈕2被點擊了...");}</script>
</html>

?5.2 常見的事件

事件屬性名說明
onclick鼠標單擊事件
onblur元素失去焦點
onfocus元素獲得焦點
onload某個頁面或圖像被完成加載
onsubmit當表單提交時觸發該事件
onmouseover鼠標被移到某元素之上
onmouseout鼠標從某元素移開

6 總結

JavaScript基礎語法不難,上手容易,但要深入進階學習并不容易,想要進一步學習,需要多看文檔,多實踐練習,多看經典書籍。編程之路漫漫,我們相互勉勵,前行。

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

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

相關文章

每日shell腳本之打印99乘法表

每日shell腳本之打印99乘法表 #!/bin/bash for i in $(seq 1 9); dofor j in $(seq 1 9); doecho -n "$i * $j $(($i * $j)) "doneecho done

Programming Abstractions in C閱讀筆記:p306-p307

《Programming Abstractions in C》學習第75天&#xff0c;p306-p307總結&#xff0c;總計2頁。 一、技術總結 1.Quicksort algorithm(快速排序) 由法國計算機科學家C.A.R(Charles Antony Richard) Hoare&#xff08;東尼.霍爾&#xff09;在1959年開發(develop), 1961年發表…

Mac 制作可引導安裝器

Mac 使用U盤或移動固態硬盤制作可引導安裝器&#xff08;以 Monterey 為例&#xff09; 本教程參考 Apple 官網相關教程 創建可引導 Mac OS 安裝器 重新安裝 Mac OS 相關名詞解釋 磁盤分區會將其劃分為多個單獨的部分&#xff0c;稱為分區。分區也稱為容器&#xff0c;不同容器…

VR虛擬現實技術應用到豬抗原體檢測的好處

利用VR虛擬仿真技術開展豬瘟檢測實驗教學確保生豬產業健康發展 為了有效提高豬場豬瘟防控意識和檢測技術&#xff0c;避免生豬養殖業遭受豬瘟危害&#xff0c;基于VR虛擬仿真技術開展豬瘟檢測實驗教學數據能大大推動基層畜牧養殖業持續穩步發展保駕護航。 一、提高實驗效率 VR虛…

鯤鵬arm64架構下安裝KubeSphere

鯤鵬arm64架構下安裝KubeSphere 官方參考文檔: https://kubesphere.io/zh/docs/quick-start/minimal-kubesphere-on-k8s/ 在Kubernetes基礎上最小化安裝 KubeSphere 前提條件 官方參考文檔: https://kubesphere.io/zh/docs/installing-on-kubernetes/introduction/prerequi…

基于大模型思維鏈(Chain-of-Thought)技術的定制化思維鏈提示和定向刺激提示的心理咨詢場景定向ai智能應用

本篇為個人筆記 記錄基于大模型思維鏈&#xff08;Chain-of-Thought&#xff09;技術的定制化思維鏈提示和定向刺激提示的心理咨詢場景定向ai智能應用 人工智能為個人興趣領域 業余研究 如有錯漏歡迎指出&#xff01;&#xff01;&#xff01; 目錄 本篇為個人筆記 記錄基…

價格腰斬,騰訊云2024優惠活動云服務器62元一年,多配置報價

騰訊云服務器多少錢一年&#xff1f;62元一年起&#xff0c;2核2G3M配置&#xff0c;騰訊云2核4G5M輕量應用服務器218元一年、756元3年&#xff0c;4核16G12M服務器32元1個月、312元一年&#xff0c;8核32G22M服務器115元1個月、345元3個月&#xff0c;騰訊云服務器網txyfwq.co…

Node.js中的并發和多線程處理

在Node.js中&#xff0c;處理并發和多線程是一個非常重要的話題。由于Node.js是單線程的&#xff0c;這意味著它在任何給定時間內只能執行一個任務。然而&#xff0c;Node.js的事件驅動和非阻塞I/O模型使得處理并發和多線程變得更加高效和簡單。在本文中&#xff0c;我們將探討…

【排坑】搭建 Karmada 環境

git clone 報錯 問題&#xff1a;Failed to connect to github.com port 443:connection timed out 解決&#xff1a; git config --global --unset http.proxy【hack/local-up-karmada.sh】 1. karmada ca-certificates (no such package) 問題&#xff1a;fetching http…

老化的電動車與高層電梯樓的結合,將是巨大的安全隱患

中國是全球最大的電動汽車市場&#xff0c;其實中國還是全球最大的電動兩輪車市場&#xff0c;而電動兩輪車的老化比電動汽車更快&#xff0c;電動汽車的電池壽命可以達到10年&#xff0c;而電動兩輪車的電池壽命只有3-5年&#xff0c;而首批電動兩輪車至今已老化得相當嚴重&am…

【Pytorch深度學習開發實踐學習】【AlexNet】經典算法復現-Pytorch實現AlexNet神經網絡(1)model.py

算法簡介 AlexNet是人工智能深度學習在CV領域的開山之作&#xff0c;是最先把深度卷積神經網絡應用于圖像分類領域的研究成果&#xff0c;對后面的諸多研究起到了巨大的引領作用&#xff0c;因此有必要學習這個算法并能夠實現它。 主要的創新點在于&#xff1a; 首次使用GPU…

AI語音識別的技術解析

從語音識別算法的發展來看&#xff0c;語音識別技術主要分為三大類&#xff0c;第一類是模型匹配法&#xff0c;包括矢量量化(VQ) 、動態時間規整(DTW)等&#xff1b;第二類是概率統計方法&#xff0c;包括高斯混合模型(GMM) 、隱馬爾科夫模型(HMM)等&#xff1b;第三類是辨別器…

golang gin單獨部署vue3.0前后端分離應用

概述 因為公司最近的項目前端使用vue 3.0&#xff0c;后端api使用golang gin框架。測試通過后&#xff0c;博文記錄&#xff0c;用于備忘。 步驟 npm run build&#xff0c;構建出前端項目的dist目錄&#xff0c;dist目錄的結構具體如下圖 將dist目錄復制到后端程序同級目錄…

嵌入式軟件bug從哪里來,到哪里去

摘要&#xff1a;軟件從來不是一次就能完美的&#xff0c;需要以包容的眼光看待它的殘缺。那問題究竟為何產生&#xff0c;如何去除呢&#xff1f; 1、軟件問題從哪來 軟件缺陷問題千千萬萬&#xff0c;主要是需求、實現、和運行環境三方面。 1.1 需求描述偏差 客戶角度的描…

PSO-CNN-LSTM多輸入回歸預測|粒子群算法優化的卷積-長短期神經網絡回歸預測(Matlab)——附代碼數據

目錄 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 亮點與優勢&#xff1a; 二、實際運行效果&#xff1a; 三、算法介紹&#xff1a; 四、完整程序數據分享下載&#xff1a; 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 本代碼基于Matlab平臺…

5 局域網基礎(3)

1.AAA 服務器 AAA 是驗證、授權和記賬(Authentication、Authorization、Accounting)3個英文單詞的簡稱&#xff0c;是一個能夠處理用戶訪問請求的服務器程序,提供驗證授權以及帳戶服務,主要目的是管理用戶訪問網絡服務器&#xff0c;對具有訪問權的用戶提供服務。AAA服務器通常…

Java TCP文件上傳案例

文件上傳分析 【客戶端】輸入流&#xff0c;從硬盤讀取文件數據到程序中。【客戶端】輸出流&#xff0c;寫出文件數據到服務端。【服務端】輸入流&#xff0c;讀取文件數據到服務端程序。【服務端】輸出流&#xff0c;寫出文件數據到服務器硬盤中。 基本實現 服務端實現 pu…

【二分查找】樸素二分查找

二分查找 題目描述 給定一個 n 個元素有序的&#xff08;升序&#xff09;整型數組 nums 和一個目標值 target &#xff0c;寫一個函數搜索 nums 中的 target&#xff0c;如果目標值存在返回下標&#xff0c;否則返回 -1。 示例 1: 輸入: nums [-1,0,3,5,9,12], target 9…

網絡編程:基于TCP和UDP的服務器、客戶端

1.基于TCP通信服務器 程序代碼&#xff1a; 1 #include<myhead.h>2 #define SER_IP "192.168.126.121"//服務器IP3 #define SER_PORT 8888//服務器端口號4 int main(int argc, const char *argv[])5 {6 //1.創建用于監聽的套接字7 int sfd-1;8 sf…

MYSQL C++鏈接接口編程

使用MYSQL 提供的C接口來訪問數據庫,官網比較零碎,又不想全部精讀一下,百度CSDN都是亂七八糟的,大部分不可用 官網教程地址 https://dev.mysql.com/doc/connector-cpp/1.1/en/connector-cpp-examples-connecting.html 網上之所以亂七八糟,主要是MYSQL提供了3個接口兩個包,使用…