JavaScript的學習

HTML的學習-CSDN博客

從html的學習中 其實我已經用到了 JavaScript的腳本 (GPT)

例如

echo '<script>alert("賬號密碼錯誤"); window.location="index.html";</script>';

彈窗 然后定位到 index.html

這里能夠讓我們更加快速執行一些操作

JS 用法

首先 JS代碼 需要通過 <script></script>包裹其次 可以寫入在 head 和 body中

最簡單的JS就是類似XSS的彈窗

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript學習</title>
</head>
<body><script>alert("這是一個簡單的彈窗");</script></body>
</html>

JS 寫html信息

document.write("<h1>這是通過JS document輸出的語句</h1>");

我們可以發現 通過document 可以加上html的標簽 然后輸出內容

然后我們可以通過id的指定 實現javascript的調用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>function check(){var check123 = document.getElementById('check');if(check123.innerHTML === '這是一個js腳本'){check123.innerHTML='6666';}else{check123.innerHTML='這是一個js腳本';}}</script>
</head>
<body><p id="check">這是一個js腳本</p><button type="button" onclick="check()">點我一下咯</button>
</body>
</html>

發現 這個就很簡單的寫法 通過 getID 獲取到目標地點 然后inner 替換成666

在下面的button時觸發

這就是一個最簡單的javascript腳本

外部引用的話就是下面這個例子

?這樣就實現了javascrip的運行

在瀏覽器中執行javascript

這里要學習在瀏覽器中執行

我們看看我們定義的是check函數

所以我們可以通過開發者工具打開控制臺

執行完后可以發現 他已經在頁面中進行了跳轉

在這里可以實現多行執行

?JS的輸出

存在這些輸出格式

使用 window.alert() 彈出警告框。
使用 document.write() 方法將內容寫到 HTML 文檔中。
使用 innerHTML 寫入到 HTML 元素。
使用 console.log() 寫入到瀏覽器的控制臺。

一個一個實現

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
<script>window.alert("WARNING!!!");
</script>
</body>
</html>

?下面可以寫入一個時間在html中

寫入參數 需要文檔加載完畢后操作

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
<script>document.write(Date())
</script>
</body>
</html>

?下面是對元素的控制

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><p id="check">我的第一個段落。</p><button type='button' onclick="myFunction()">點我</button><script>function myFunction() {document.getElementById('check').innerHTML = Date();}</script>
</body>
</html>

JS的語法

首先就是定義參數

var a,ba= 4
b = 'four'

JS的注釋是 //

在 // 后面的JS 不會執行

JavaScript 語法 | 菜鳥教程

var length = 16;???????????????????????????????? ?// Number 通過數字字面量賦值 
var points = x * 10;????????????????????????????? // Number 通過表達式字面量賦值
var lastName = "Johnson";???????????????????????? // String 通過字符串字面量賦值
var cars = ["Saab", "Volvo", "BMW"];????????????? // Array? 通過數組字面量賦值
var person = {firstName:"John", lastName:"Doe"};??// Object 通過對象字面量賦值

JavaScript 對大小寫是敏感的。

break 	用于跳出循環。
catch 	語句塊,在 try 語句塊執行出錯時執行 catch 語句塊。
continue 	跳過循環中的一個迭代。
do ... while 	執行一個語句塊,在條件語句為 true 時繼續執行該語句塊。
for 	在條件語句為 true 時,可以將代碼塊執行指定的次數。
for ... in 	用于遍歷數組或者對象的屬性(對數組或者對象的屬性進行循環操作)。
function 	定義一個函數
if ... else 	用于基于不同的條件來執行不同的動作。
return 	退出函數
switch 	用于基于不同的條件來執行不同的動作。
throw 	拋出(生成)錯誤 。
try 	實現錯誤處理,與 catch 一同使用。
var 	聲明一個變量。
while 	當條件語句為 true 時,執行語句塊。

這是JS函數的介紹

多行注釋 /**/

對于變量的命名 這里也需要注意


變量必須以字母開頭
變量也能以 $ 和 _ 符號開頭(不過我們不推薦這么做)
變量名稱對大小寫敏感(y 和 Y 是不同的變量)

其次注意一下數組的創建

var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";或者 (condensed array):
var cars=new Array("Saab","Volvo","BMW");

對象的創建

var person={
firstname : "John",
lastname  : "Doe",
id        :  5566
};對象屬性有兩種尋址方式:
實例
name=person.lastname;
name=person["lastname"]; 

?這里注意對象的尋址即可

??JS的對象

這個就比較重要了

這里直接引用菜鳥教程的例子

屬性就是汽車的組成

方法就是使用汽車的方式

對象就是一個大的汽車

在JS中任何事務都可以是一個對象

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};這里 我們可以通過person.firstName 獲取到 John其他同理或者可以使用person[firstName] 獲取到 John

下面是函數作為方法存儲在對象內

var person = {firstName: "John",lastName : "Doe",id : 5566,fullName : function() {return this.firstName + " " + this.lastName;}
};

我們發現 fullName 是一個函數

這里就是方法

我們可以通過person.fullName() 調用document.getElementById("demo1").innerHTML = "不加括號輸出函數表達式:"  + person.fullName;
document.getElementById("demo2").innerHTML = "加括號輸出函數執行結果:"  +  person.fullName();兩個調用方式 不一樣輸出內容是不加括號輸出函數表達式:function() { return this.firstName + " " + this.lastName; }加括號輸出函數執行結果:John Doe

這些就是JS最基礎的對象了

我寫的也很基礎

JS函數

最簡單的調用函數方式

function test(){//代碼段
}

如果是帶參數的函數

function test(a,b){alert(a+b);
}

這樣就可以執行帶參數的內容

然后就是返回值

使用return即可

function test(a,b){retrun a+b;
}

然后就是全局和局部變量

這里還有一個 可配置全局和不可配置全局

var var1 = 1; // 不可配置全局屬性
var2 = 2; // 沒有使用 var 聲明,可配置全局屬性console.log(this.var1); // 1
console.log(window.var1); // 1
console.log(window.var2); // 2delete var1; // false 無法刪除
console.log(var1); //1delete var2; 
console.log(delete var2); // true
console.log(var2); // 已經刪除 報錯變量未定義

JS的作用域

其實就是全局變量這些

myFunction();
document.getElementById("demo").innerHTML = "carName 的類型是:" +  typeof carName;
function myFunction() 
{var carName = "Volvo";
}這里我們發現 我們在局部變量 定義前就已經通過innerHTML 輸出 這里是不可以的輸出內容是carName 的類型是:undefined

但是這里注意

myFunction();
document.getElementById("demo").innerHTML = "carName 的類型是:" +  typeof carName;
function myFunction() 
{carName = "Volvo";
}

這里是可以的 有什么區別呢 就是 carName前是否存在var

如果沒有var? 就默認為全局變量

GPT的回答

當使用 var 關鍵字聲明變量時,該變量會被限定在當前的函數作用域或全局作用域中。
但是,如果在聲明變量時沒有使用 var、let 或 const,JavaScript 引擎會將其視為全局變量
并將其添加到全局對象(在瀏覽器環境下是 window 對象)的屬性中

?JS的事件

這里我感覺是目前用戶遇到js最多的地方了

通過html的事件 執行js指令

HTML 頁面完成加載
HTML input 字段改變時
HTML 按鈕被點擊
<button onclick="getElementById('demo').innerHTML=Date()">現在的時間是?</button>這里是通過點擊 修改 id=demo的內容<button onclick="this.innerHTML=Date()">現在的時間是?</button>而通過 this 是修改當前 button的指令

下面是可以操作的事件

onchange 	HTML 元素改變
onclick 	用戶點擊 HTML 元素
onmouseover 	鼠標指針移動到指定的元素上時發生
onmouseout 	用戶從一個 HTML 元素上移開鼠標時發生
onkeydown 	用戶按下鍵盤按鍵
onload 	瀏覽器已完成頁面的加載

就是 上面的內容執行的時候 就會執行js

JS字符串

我們可以通過類似python的format的方式 在字符串中加入變量const name='hel'const year='17'const message= `My name is ${name} and I'm ${year} years old.`;

我們發現是使用 ${}來進行操作

JS條件運算符

其他都是一樣的

這里知識介紹一下 條件運算符

name=(age<18)?"Vam":"Same"這里通過比對age是否小于18來輸出如果小于 就輸出Vam  如果大于 就輸出 Same

JS IF ELSE? For

<script>
function myFunction(){var x="";var time=new Date().getHours();if (time<20){x="Good day";}document.getElementById("demo").innerHTML=x;
}
</script>通過javascript 獲取到時間(精確到小時) 然后通過document輸出

這里介紹一下for循環

其實和c差不多

for(var i-0;i<cars.length;i++){decoument.write('cars[i]')}
for - 循環代碼塊一定的次數
for/in - 循環遍歷對象的屬性
while - 當指定的條件為 true 時循環指定的代碼塊
do/while - 同樣當指定的條件為 true 時循環指定的代碼塊
break 語句用于跳出循環。continue 用于跳過循環中的一個迭代。

這些在其他代碼中也都學過了

基礎內容差不多就這些了,這個文章只是個人不做開發了解javascrip

所以東西是很簡單的

照樣

我們來編寫一個js文件完善之前html的頁面

1.js

function check() {var name = document.getElementById("name");var passwd = document.getElementById("passwd");var oError = document.getElementById("error");var isError = true;if (name.value.trim() === '') {window.alert("賬號不能為空");isError = falsereturn}else if (passwd.value.trim() === '') {window.alert("密碼不能為空");isError = falsereturn}else if (name.value.length > 20 || name.value.length < 3) {oError.innerHTML = "賬號長度不對";isError = false;return} else {// 向后端發送驗證請求// 假設使用AJAX進行異步請求var xhr = new XMLHttpRequest();xhr.open('POST', '/test-web/dir.php', true); xhr.setRequestHeader('Content-Type', 'application/json');xhr.onreadystatechange = function() {if (xhr.readyState === XMLHttpRequest.DONE) {if (xhr.status === 200) {var response = JSON.parse(xhr.responseText);if (response.success) {window.alert("登錄成功");} else {oError.innerHTML = response.errorMessage;}} else {window.alert("登錄請求失敗");}}};var data = JSON.stringify({username: name.value.trim(),password: passwd.value.trim()});xhr.send(data);}setTimeout(function() {error.innerHTML = "";}, 2000);
}

index.html

<<!DOCTYPE html>
<html lang="en">
<!---flag{fuc3-yo3}-->
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- <script type="text/javascript" src="js/1.js"></script> --><title>學習測試一下網站解法</title>
</head>
<body><h1> 我需要學會html語言基本 </h1><hr><h2> 基礎的東西我也要會</h2><p>  段落和標題的區別就是這個 其實我就是正文 </p><hr><p> 不同段落需要 重新獲取p標簽</p><a href="帥照.jpg" download>下載帥照</a><p>這是一個段落標簽<br>但是我使用br分段</p><p> 這里介紹一下表格</p><table border="12"><thead><tr><th> id</th><th> name</th><th> passwd</th></tr></thead><tbody><tr><td> 1</td><td> admin</td><td> admin123</td></tr></tbody></table>       <p> 這里介紹一下列表</p><ul><li>1111111:</li><li>2222222:</li></ul><form action="/test-web/dir.php" method="post"> <label for="name">用戶名</label><input type="text" name="name" id="name"><br><label for="passwd">密碼:</label><input type="password" name="passwd" id="passwd"><br><button type="submit"  onclick="check()">登入</button><p id="error"><br></p><a href="http://127.0.0.1:3000/test-web/zhuce.php">注冊</a>
</form></body>
</html>

這里是修改后的 后面的js鏈接后端是通過gpt生成的

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

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

相關文章

品牌線上竄貨查的出來嗎

如果竄貨不治理會出現什么局面&#xff0c;顯見的當然是渠道混亂&#xff0c;低價叢生&#xff0c;嚴重的還會導致真假混賣&#xff0c;最后所有的后果都會由品牌承擔&#xff0c;口碑的影響是必然的&#xff0c;那品牌的衰敗也會是一種趨勢&#xff0c;所以治理竄貨是品牌發展…

C現代方法(第22章)筆記——輸入/輸出

文章目錄 第22章 輸入/輸出22.1 流22.1.1 文件指針22.1.2 標準流和重定向22.1.3 文本文件與二進制文件 22.2 文件操作22.2.1 打開文件22.2.2 模式22.2.3 關閉文件22.2.4 為打開的流附加文件22.2.5 從命令行獲取文件名22.2.6 臨時文件22.2.7 文件緩沖22.2.8 其他文件操作 22.3 格…

Windows | 模仿網易云任務欄實現自定義按鈕及縮略圖

前言 最近更新網易云發現任務欄按鈕中除了播放相關的按鈕&#xff0c;多了一個喜歡的按鈕&#xff1a; 之前我一直以為網易云任務欄的按鈕只是 Windows 為音樂軟件專門提供的&#xff0c;于是我又看了一眼系統自帶的播放器&#xff0c;發現并沒有愛心按鈕&#xff1a; 這時我就…

計算給定字符串中各個數字的和的平均值…… ← Python 列表

【題目描述】 給定字符串 s"9876543210"。 請編程計算給定字符串中各個數字的和的平均值&#xff0c;并統計大于平均值的數字個數。【算法分析】 ◆ alist("abcd") # Create a list with characters a, b, c, d◆ eval(a[i]) # Converts characters to i…

C在國內就業已經拉胯,ChatGPT告訴我的

文章目錄 一、前言二、ChatGPT查到的數據三、數據亮點 1.C語言近3年數據大跌2.招聘數量每年都在劇增的是全棧工程師3.薪資漲幅最高的是全棧和網安 四、結語 一、前言 不僅前在微信群里搭建了一個ChatGPT 5.0做智能助手&#xff0c;讓他來幫我回答群問題&#xff0c; 搭建好…

數十億美元商機!英國數字基礎設施公司Equinix與法國量子計算公司Alice Bob 合作

?&#xff08;圖片來源&#xff1a;網絡&#xff09; 近日&#xff0c;全球數字基礎設施公司Equinix宣布與全球領先的法國量子計算公司Alice & Bob合作&#xff0c;旨在共同開發市場上最為可靠的量子處理器之一。此次合作將使Equinix公司的客戶通過使用Equinix Metal和Eq…

好的程序員有什么特質呢?

程序員想要提升自己&#xff0c;一定要關注到工作中的方方面面。而一個好的程序員&#xff0c;一般都有這些特質&#xff1a; 弱者抱怨環境&#xff0c;強者改變環境 不要試圖通過抱怨環境來獲得工作環境上的改變&#xff0c;這不僅不會給你帶來任何實質性的改變&#xff0c;…

自定義字符-攝氏度漢字一

本文為博主 日月同輝&#xff0c;與我共生&#xff0c;csdn原創首發。希望看完后能對你有所幫助&#xff0c;不足之處請指正&#xff01;一起交流學習&#xff0c;共同進步&#xff01; > 發布人&#xff1a;日月同輝,與我共生_單片機-CSDN博客 > 歡迎你為獨創博主日月同…

springboot+vue項目如何集成onlyoffice開源文檔組件

一、onlyoffice是什么 ONLYOFFICE 是一個開源的辦公套件&#xff0c;適合多人在線協作。由總部位于總部在拉脫維亞的 IT 公司Acensio System SIA 開發。它提供在線協作文檔編輯器&#xff08;包括文檔、電子表格、演示文稿和表單&#xff09;&#xff0c;適用于 Windows、Linu…

python tkinter使用(五)

python tkinter使用(五) 本篇文章講述tkinter 中treeview的使用 Treeview是一個多列列表框&#xff0c;可以顯示層次數據。 #!/usr/bin/python3 # -*- coding: UTF-8 -*- """Author: zhTime 2023/11/23 下午8:28 .Email:Describe: treeview 使用 "&quo…

項目經理面試題持續更新

1.項目中常用的文檔有哪些&#xff1f; 1、可行性報告 可行性報告的目的是調查和展示任務要求&#xff0c;并確定項目是否值得和可行。可行性由五個主要因素驗證——技術和系統、成本、法律、運營和進度。次要可行性因素包括市場、資源和文化因素。 2、項目章程 項目章程是證明…

Linux上自動掛載windows下的網絡共享文件夾

比如我們想在ubuntu上掛載一個windows的共享文件夾&#xff0c;我們可以用如下方式實現。 首先我們將windows下的文件夾右鍵選擇【屬性】&#xff0c;然后選擇【共享】。 選擇需要共享的用戶&#xff0c;然后設置權限級別。 點擊共享&#xff0c;然后點擊完成。 這樣我們在wi…

Go語言網絡爬蟲工程經驗分享:pholcus庫演示抓取頭條新聞的實例

網絡爬蟲是一種自動從互聯網上獲取數據的程序&#xff0c;它可以用于各種目的&#xff0c;如數據分析、信息檢索、競爭情報等。網絡爬蟲的實現方式有很多&#xff0c;不同的編程語言和框架都有各自的優勢和特點。在本文中&#xff0c;我將介紹一種使用Go語言和pholcus庫的網絡爬…

基于opencv+ImageAI+tensorflow的智能動漫人物識別系統——深度學習算法應用(含python、JS、模型源碼)+數據集(一)

目錄 前言總體設計系統整體結構圖系統流程圖 運行環境爬蟲1.安裝Anaconda2.安裝Python3.63.更換pip源4.安裝Python包5.下載phantomjs 模型訓練1.安裝依賴2.安裝lmageAl 實際應用1.前端2.安裝Flask3.安裝Nginx 相關其它博客工程源代碼下載其它資料下載 前言 本項目通過爬蟲技術…

Word怎么看字數?簡單教程分享!

“我在寫文章時&#xff0c;總是想看看寫了多少字。但是我發現我的Word無法看到字數。在Word中應該怎么查看字數呢&#xff1f;請幫幫我&#xff01;” Word是一個廣泛使用的文檔編輯工具。在我們編輯文章時&#xff0c;如果想查看寫了多少字&#xff0c;也是可以輕松完成的。 …

leetcode:環形鏈表的入環點

題目描述 題目鏈接:力扣&#xff08;LeetCode&#xff09;官網 - 全球極客摯愛的技術成長平臺 題目分析 我們假設起點到環的入口點的距離是L&#xff0c;入口點到相遇點的距離是X&#xff0c;環的長度是C 那么畫圖我們可以得知&#xff1a; 從開始到相遇時slow走的距離是LX從…

Adobe的組織工具程序Bridge 2024 版本下載與安裝

目錄 前言一、Bridge 2024安裝二、使用配置總結 前言 Adobe Bridge是由 Adobe 公司開發的一款用于管理和組織創意資產的工具。它是Adobe Creative Cloud 套件的一部分&#xff0c;為設計師、攝影師和其他創意專業人員提供了一個集中管理和瀏覽其多媒體文件的平臺。注&#xff…

Ubuntu開機顯示No bootable devices found

Ubuntu開機報錯&#xff0c;顯示顯示No bootable devices found&#xff0c;如下圖所示&#xff1a; 解決方案如下&#xff1a; 1. F2進入BIOS (1) 重啟開啟&#xff0c;按F2進入BIOS系統。 (2) 進入Boot Sequence&#xff0c;目前系統選擇了UEFI&#xff0c;而Legacy選項為…

Android : AlertDialog對話框、單選、多選、適配器-簡單應用

示例圖&#xff1a; 1 &#xff1a;創建 AlertDialog.Builder 對象&#xff1b; 2 &#xff1a;調用 setIcon() 設置圖標&#xff0c; setTitle() 或 setCustomTitle() 設置標題&#xff1b; 3 &#xff1a;設置對話框的內容&#xff1a; setMessage() 還有其他方法來指定顯示…

【每日一題】2824. 統計和小于目標的下標對數目-2023.11.24

題目&#xff1a; 2824. 統計和小于目標的下標對數目 給你一個下標從 0 開始長度為 n 的整數數組 nums 和一個整數 target &#xff0c;請你返回滿足 0 < i < j < n 且 nums[i] nums[j] < target 的下標對 (i, j) 的數目。 示例 1&#xff1a; 輸入&#xff1…