前段三劍客之JavaScript-02

目錄

簡介

核心

函數

字符串對象

事件

運算符和控制語句

DOM

正則表達式

BOM

JSON


簡介

JavaScript由JavaScript語法,DOM和BOM組成

JS中提供了一些輸入輸出語句:

? ? ? ? alert(); //瀏覽器彈出警示框

? ? ? ? console.log(); //控制臺打印

? ? ? ? prompt(); //瀏覽器彈出輸入框

? ? ? ? var 變量名 = 值; //可以賦任何值,弱類型語言

? ? ? ? 只聲明,不賦值:默認賦值 undefined

? ? ? ? 不聲明,不賦值:報錯

? ? ? ? 不聲明,只賦值:可以用

typeof運算的語法格式:

? ? ? ? typeof 變量名

typeof運算符的運算結果是以下六個字符串之一:

? ? ? ? undefined string boolean object number function

全局變量:瀏覽器打開時聲明,瀏覽器關閉時銷毀

注意:

? ? ? ? 省略var聲明的變量,無論是在函數體內還是函數體外定義的都是全局變量

? ? ? ? 聲明局部變量,一定要用var語句

轉換為字符串

? ? ? ? num.toString();

? ? ? ? String(num);

? ? ? ? num + "字符串"

轉換為數字

? ? ? ? parseInt(str);

? ? ? ? parseFloat(str);

? ? ? ? Number(str);

null NaN undefined 這三個值有什么區別?

null:object

NaN:number

undefined:undefined

但是null和undefined可以等同

核心

函數的定義方式:

? ? ? ? function 函數名(形參){

? ? ? ? ? ? ? ? 函數體;

????????}

? ? ? ? 函數名 = function(形參){

? ? ? ? ? ? ? ? 函數體;

????????}

? ? ? ? JS中的函數不需要指定返回值類型,返回什么類型都行

? ? ? ? 可以作為屬性值調用,οnclick="函數"

JS定義類的語法:

? ? ? ? function 類名(形參){

? ? ? ? ? ? ? ? this.屬性 = 屬性值,

? ? ? ? ? ? ? ? this.方法 = function(){}

????????}

? ? ? ? var 類名 = function(形參){}

? ? ? ? var 類名 = {}

? ? ? ? 可以通過prototype這個屬性來給類動態擴展屬性以及函數

? ? ? ? 類名.prototype.方法 = function(){}

創建數組的兩種方式:

? ? ? ? var 數組名 = new Array();

? ? ? ? var 數組名 = [];

函數

obj.getFullYear();
obj.getMonth();
obj.getDate();
obj.getDay();
obj.getHours();
obj.getMinutes();
obj.getSeconds();

字符串對象

concat(str1,str2,str3)
substr(start,length)
slice(start,end)
substring(start,end)
toUpperCase()
toLowerCase()

事件

任何一個事件都會對應一個事件句柄,事件句柄是在事件前添加on。

onXXX這個事件句柄出現在一個標簽的屬性位置上。

注冊事件的兩種方式:

? ? ? ? 1、直接在標簽中使用事件句柄

? ? ? ? 2、先獲取這個按鈕對象,給按鈕對象的onclick屬性賦值

運算符和控制語句

void運算符:

? ? ? ? 語法:void(表達式)

? ? ? ? 運算原理:執行表達式,但不返回任何結果

? ? ? ? ? ? ? ? javascript:void(0)

即保留超鏈接的樣式,同時用戶點擊該超鏈接的時候執行一段JS代碼,但頁面還不能跳轉

<a href="javascript:void(0)"> </a>

數組定義語法:

? ? ? ? var 數組名 = [];

? ? ? ? for..in

? ? ? ? for(var i in array){

? ? ? ? ? ? ? ? alert(i);

????????}

? ? ? ? with

? ? ? ? with(對象名){

? ? ? ? ? ? ? ? alert(屬性);

????????}

DOM

根據id名獲取:document.getElementById("id名");

根據標簽名獲取:document.getElementsByTagName("標簽名");

根據類名獲取:document.getElementsByClassName("類名");

根據選擇器獲取:document.querySelector("選擇器");

根據選擇器獲取:document.querySelectorAll("選擇器");

獲取body元素:document.body

獲取html元素:document.documentElement;

innerText和innerHTML屬性有什么區別?

相同點:都是設置元素內部的內容

不同點:innerText不識別html標簽;innerHTML識別html標簽

關于dom操作,主要針對于元素的操作。主要有創建、增、刪、改、查、屬性操作、事件操作。

創建:

? ? ? ? 1、document.write

? ? ? ? 2、innerHTML

? ? ? ? 3、createElement

增加:

? ? ? ? 1、appendChild

? ? ? ? 2、insertBefore

刪除:

? ? ? ? 1、removeChild

修改:

? ? ? ? 1、修改元素屬性:src、href、title

? ? ? ? 2、修改普通元素內容:innerHTML、innerText

? ? ? ? 3、修改表單元素:value、type、disabled

? ? ? ? 4、修改元素樣式:style、className

查詢:

? ? ? ? 1、DOM提供的API方法:getElementById、getElementsByTagName

? ? ? ? 2、querySelector、querySelectorAll

? ? ? ? 3、利用節點操作獲取元素:parentNode、children、previousElementSibling、nextElementSibling

屬性操作:

? ? ? ? 1、setAttribute

? ? ? ? 2、getAttribute

? ? ? ? 3、removeAttribute

正則表達式

什么是正則表達式,有什么用?

? ? ? ? Regular Expression

? ? ? ? 正則表達式主要用在字符串格式匹配方面

BOM

BOM編程中,window對象是頂級對象,代表瀏覽器窗口

window.open()

window.close()

window.alert()

window.confirm()

window.history.back()

window.history.go(-1)

window.history.go(1)

以上相當于網頁左上角的前進和后退箭頭

window.localtion.href //當前頁面的地址

document.location //也是地址

總結:有哪些方法可以通過瀏覽器往服務器發請求?

? ? ? ? 1、表單form的提交

? ? ? ? 2、超鏈接

? ? ? ? 3、document.location

? ? ? ? 4、window.location

? ? ? ? 5、window.open("url")

? ? ? ? 6、直接在瀏覽器地址欄上輸入url

以上所有的請求方式都可以攜帶數據給服務器,只有通過表單提交的數據才是動態的。

JSON

什么是JSON,有什么用?

? ? ? ? JavaScript Object Notation

? ? ? ? 主要的作用是:一種標準的數據交換格式,目前非常流行

JSON是一種標準的輕量級的數據交換格式。特點是:體積小,易解析

在實際的開發中有兩種數據交換格式,使用最多,其一是JSON,另一個是XML。

? ? ? ? XML體積較大,解析麻煩,語法嚴謹

? ? ? ? 通常銀行相關的系統站之間進行數據交換的話使用XML

HTML的XML有一個父親:SGML

HTML主要做頁面展示:語法松散

XML主要做數據存儲和數據描述的:語法相當嚴格

//創建JSON對象
var student = {no : '01',name : '張三',age : 20,sex : '男'
}
//遍歷JSON對象
for(var s in student){alert(student[s]);
}//一個復雜的json對象
var jsonData = {name : '張三',   age : 20,address : {city : '北京',street : '朝陽區'},interest : ['smoke', 'drink']
}

Java連接數據庫,查詢數據之后,將數據在java程序中拼接成JSON格式的字符串,將json格式的字符串響應到瀏覽器也就是說java響應到瀏覽器上的僅僅是一個JSON格式的字符串,還不是一個json對象,可以使用eval函數,將json格式的字符串拼接成json對象。

eval函數的作用是:將字符當作一段JS代碼解析并執行

var str = "{name : 'jack', age : 22}";window.eval("var json2 = " + str);
alert(json2.name);

在JS當中: []和{}有什么區別?

? ? ? ? []是數組

? ? ? ? {}是JSON

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

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

相關文章

Qiskit:量子計算模擬器

參考文獻&#xff1a; IBM Qiskit 官網Qiskit DocumentationQiskit Benchpress packageQiskit Algorithms package量子計算&#xff1a;基本概念常見的幾類矩陣&#xff08;正交矩陣、酉矩陣、正規矩陣等&#xff09;Qiskit 安裝指南-博客園使用Python實現量子電路模擬&#x…

【Elasticsearch】Elasticsearch 核心技術(二):映射

Elasticsearch 核心技術&#xff08;二&#xff09;&#xff1a;映射 1.什么是映射&#xff08;Mapping&#xff09;1.1 元字段&#xff08;Meta-Fields&#xff09;1.2 數據類型 vs 映射類型1.2.1 數據類型1.2.2 映射類型 2.實際運用案例案例 1&#xff1a;電商產品索引映射案…

serv00 ssh登錄保活腳本-郵件通知版

適用于自己有服務器情況&#xff0c;ssh定時登錄到serv00&#xff0c;并在登錄成功后發送郵件通知 msmtp 和 mutt安裝 需要安裝msmtp 和 mutt這兩個郵件客戶端并配置&#xff0c;參考如下文章前幾步是講配置這倆客戶端的&#xff0c;很簡單&#xff0c;不再贅述 用Shell腳本實…

前端 Electron 桌面應用學習筆記

前端 Electron 桌面應用學習筆記 介紹Electron是什么?為什么選擇Electron?創建你的第一個桌面應用程序啟動項目運行結果截圖打開調試面板方法生命周期函數常用配置配置窗口標題配置小圖標隱藏菜單欄關閉調試面板是否可以使用Node.js隱藏 Electron 標題、小圖標和菜單欄獲取窗…

LeetCode - 94. 二叉樹的中序遍歷

題目 94. 二叉樹的中序遍歷 - 力扣&#xff08;LeetCode&#xff09; 什么是中序遍歷 二叉樹的中序遍歷是按照"左-根-右"的順序訪問二叉樹中的所有節點。 具體過程&#xff1a; 先遍歷左子樹&#xff08;遞歸&#xff09;然后訪問根節點最后遍歷右子樹&#xff…

PyTorch——搭建小實戰和Sequential的使用(7)

import torch from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linearclass TY(nn.Module):def __init__(self):"""初始化TY卷積神經網絡模型模型結構&#xff1a;3層卷積池化&#xff0c;2層全連接設計目標&#xff1a;處理32x32像素的…

C#、VB.net——如何設置窗體應用程序的外邊框不可拉伸

以Visual studio 2015為例&#xff0c;具體操作如下&#xff1a; 1、將窗體的“FormBorderStyle”屬性值修改為“FixedSingle”&#xff1a; 2、點擊“格式”——“鎖定控件”&#xff1a; 這樣生成的程序邊框即可固定住&#xff0c;無法拉伸。

深入了解NIO的優化實現原理

網絡 I/O 模型優化 網絡通信中&#xff0c;最底層的就是內核中的網絡 I/O 模型了。隨著技術的發展&#xff0c;操作系統內核的網絡模型衍生出了五種 I/O 模型&#xff0c;《UNIX 網絡編程》一書將這五種 I/O 模型分為阻塞式 I/O、非阻塞式 I/O、I/O 復用、信號驅動式 I/O 和異步…

【前端】vue3性能優化方案

以下是Vue 3性能優化的系統性方案&#xff0c;結合核心優化策略與實用技巧&#xff0c;覆蓋渲染、響應式、加載、代碼等多個維度&#xff1a; ?? 一、渲染優化 精準控制渲染范圍 v-if vs v-show&#xff1a; v-if&#xff1a;條件為假時銷毀DOM&#xff0c;適合低頻切換場景&…

在MATLAB中使用自定義的ROS2消息

簡明結論&#xff1a; 無論ROS2節點和MATLAB運行在哪&#xff0c;MATLAB本機都必須擁有自定義消息源碼并本地用ros2genmsg生成&#xff0c;才能在Simulink里訂閱這些消息。只要你想讓MATLAB或Simulink能識別自定義消息&#xff0c;必須把消息包源碼(.msg等)拷到本機指定目錄&a…

spring重試機制

數據庫死鎖處理與重試機制實現指南 1. 業務場景 1.1 問題現象 高并發批量數據處理時頻繁出現數據庫死鎖主要發生在"先刪除歷史數據&#xff0c;再重新計算"的業務流程中原有逐條處理方式&#xff1a;list.forEach(item -> { delete(); calculate(); }) 1.2 死…

QEMU源碼全解析 —— 塊設備虛擬化(24)

接前一篇文章:QEMU源碼全解析 —— 塊設備虛擬化(23) 本文內容參考: 《趣談Linux操作系統》 —— 劉超,極客時間 《QEMU/KVM源碼解析與應用》 —— 李強,機械工業出版社 特此致謝! QEMU寫入一個文件的完整過程 前邊用了十來篇文章的篇幅,解析了QEMU啟動過程中的存儲…

java中static學習筆記

較重要知識點 static修飾的變量是共享的在類加載時創建可以不通過實例來訪問靜態方法只能訪問靜態的成員和方法&#xff1b;而非靜態的可以訪問靜態的和非靜態的。靜態方法一般用在通用的方法&#xff0c;這樣方便調用&#xff0c;不然一個通用的方法每一次調用都要創建實例&a…

快刀集(1): 一刀斬斷視頻片頭廣告

一刀流&#xff1a;用一個簡單腳本&#xff0c;秒殺視頻片頭廣告&#xff0c;還你清爽觀影體驗。 1. 引子 作為一個愛生活、愛學習、愛收藏高清資源的老碼農&#xff0c;平時寫代碼之余看看電影、補補片&#xff0c;是再正常不過的事。 電影嘛&#xff0c;要沉浸&#xff0c;…

spring中的@KafkaListener 注解詳解

KafkaListener 是 Spring Kafka 提供的一個核心注解&#xff0c;用于標記一個方法作為 Kafka 消息的消費者。下面是對該注解的詳細解析&#xff1a; 基本用法 KafkaListener(topics "myTopic", groupId "myGroup") public void listen(String message)…

多區域協同的異地多活AI推理服務架構

&#x1f310;多區域協同的異地多活AI推理服務架構 #mermaid-svg-TTnpRKKC7k3twxhE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TTnpRKKC7k3twxhE .error-icon{fill:#552222;}#mermaid-svg-TTnpRKKC7k3twxhE .er…

極客時間:在 Google Colab 上嘗試 Prefix Tuning

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

Android設備推送traceroute命令進行網絡診斷

文章目錄 工作原理下載traceroute for android推送到安卓設備執行traceroutetraceroute www.baidu.com Traceroute&#xff08;追蹤路由&#xff09; 是一個用于網絡診斷的工具&#xff0c;主要用于追蹤數據包從源主機到目標主機所經過的路由路徑&#xff0c;以及每一跳&#x…

【Linux應用】Linux系統日志上報服務,以及thttpd的配置、發送函數

【Linux應用】Linux系統日志上報服務&#xff0c;以及thttpd的配置、發送函數 文章目錄 thttpd服務安裝thttpd配置thttpd服務thttpd函數日志效果和文件附錄&#xff1a;開發板快速上手&#xff1a;鏡像燒錄、串口shell、外設掛載、WiFi配置、SSH連接、文件交互&#xff08;RADX…

Linux 內核內存管理子系統全面解析與體系構建

一、前言: 為什么內存管理是核心知識 內存管理是 Linux 內核最核心也最復雜的子系統之一&#xff0c;其作用包括&#xff1a; 為軟件提供獨立的虛擬內存空間&#xff0c;實現安全隔離分配/回收物理內存資源&#xff0c;維持系統穩定支持不同類型的內存分配器&#xff0c;最優…