JavaScript基礎系列

来源:https://www.cnblogs.com/dashucoding/archive/2019/04/15/10713070.html
-Advertisement-
Play Games

JavaScript基礎系列 JavaScript是一種基於對象和事件驅動的客戶端腳本語言。 JavaScript的註釋 JavaScript變數,函數名和操作符都是區分大小寫的。 標識符是變數,函數,屬性的名稱,函數里的參數。 命名規則: 字母,數字,下劃線,美元符號,不能以數字開頭 變數的聲明與 ...


JavaScript基礎系列

JavaScript基礎系列

image.png

JavaScript是一種基於對象和事件驅動的客戶端腳本語言。

JavaScript的註釋

// 單行 /**/ 多行註釋

JavaScript變數,函數名和操作符都是區分大小寫的。

標識符是變數,函數,屬性的名稱,函數里的參數。

命名規則:

字母,數字,下劃線,美元符號,不能以數字開頭

變數的聲明與賦值

使用var聲明變數
省略var聲明的變數是全局變數,不過不推薦使用

JavaScript的基礎語法和JavaScript的變數

數據類型和typeof

JavaScript的數據類型分 簡單數據類型(基本數據類型)和複雜數據類型。

undefined, null, boolean, number, string

複雜數據類型,object

typeof檢測變數的類型,變數的類型取決於變數的類型,變數是沒有類型的。返回值:string,number,等。

undefined沒有定義,變數沒有賦值,是undefined

null值為空對象,undefined==null為true

number, isNaN(), Number(), parseInt(), parseFloat()

number:表示整數和浮點數

如何與NaN的操作都會返回NaN,與任何值都不相等,包括本身。

isNaN(n),檢測n是否是“非數值”,返回值是boolean

parseInt():會忽略字元串前面的空格,直到找到第一個非空格字元。

console.log(parseInt("0xf",16));

toString和String()轉換為字元串,使用toString()可以將轉換為字元串,如果不知道要轉換的值是不是Null,和undefined的情況下,可以使用string()函數。

除0,“”,null,undefined之外的所有數字,轉換為布爾型都是true。

邏輯操作符,與,或,非

image.png

image.png

邏輯或

image.png

流程式控制制語句

分支語句,prompt()的應用,alert()的應用

if(codition){
}else{
}
nan和任何內容都不相等,包括它本身

獲取星期

new Date().getDay() 獲取星期,number(0-6)

迴圈語句

for for-in while do-while

for(語句1;語句2;語句3){
...
}

break和continue語句

continue: 結束本次迴圈,繼續開始下一次

JavaScript中的函數,作用,定義,調用

函數的返回值,通過return語句,實現返回值。

function add(num1,num2){
 var sum = num1+num2;
 return sum;
}
console.log(add(1,2));
// 3

return語句在函數中可以停止並立即退出,return語句可以不帶有任何返回值,用於停止函數執行。

arguments是ecmascript中的參數在內部用一個數組表示,arguments對象只是與數組類似,並不是array的實例,[]語法用於訪問它的每一個元素。

function getAvg(){
 var sum = 0; len = arguments.length,i;
 for(i=0;i<len;i++){
  sum+=arguments[i];
 }
}

JavaScript中的內置對象

字元串,函數,數組,內置對象

array, string, math, date

數組是用來存儲一組數據的。

數組方法

push()
unshift()
pop()
shift()

join()
語法:
arrayObject.join();
功能:
用於把數組中的所有元素放入一個字元串

reverse()
語法:
stringObject.reverse()
功能:
用於顛倒數組中元素的順序

sort()
語法:
arrayObject.sort()
功能:
用於數組的元素進行排序

concat()
語法:
arrayObject.concat();
功能:
用於連接兩個或多個數組

slice()
語法:
arrayObject.slice(start,end)
功能:
從已有的數組中返回選定的元素

for(var i=0; i<a.length; i++){
 b.push(a[i]);
}
b=[].concat(a);
b=a.slice(0);

數組中的splice()方法刪除,插入,替換數組

arrayObject.splice(index,count)
刪除從Index處開始的元素
返回的是,含有被刪除的元素的數組
count刪除個數

arrayObject.splice(index,0,item1...)
在指定位置插入值
參數:
index起始位置
0要刪除的個數
item1... 要插入的項
返回數組

arrayObject,splice(index,count,item1...)
插入值
返回從原始數組中刪除的項

//刪除
var delArr=arr.splice(2,0);
//插入
var insertArr=arr.splice(3,0,"m","n",88);
//替換
var replaceArr=arr.splice(1,2,"x","y","z");

數組的方法indexOf()和lastIndexOf()

arrayObject.indexOf();
從數組的開頭開始向後查找
indexOf(2,0);
第一個參數,查找的元素
第二個參數,從下標哪裡查找

arrayObject.lastIndexOf();
從數組的末尾開始查找

function ArrayIndexOf(arr,value){
 // 檢測value在arr中出現的位置
 for(var i=0; i<arr.length; i++){
  if(arr[i] === value){
   return i;
  }
 }
 return -1;
}

字元串對象

charAt()
stringObject.charAt(index)
返回stringObject中index位置的字元

charCodeAt()
返回stringObject中index位置字元的字元編碼

indexOf()
lastIndexOf()

字元串對象的截取方法:

slice()
stringObject.slice(start,end)
截取子字元串

substring() 不可負數,負數當做0
substr(start,len)字元總數

// 獲取擴展名
function get(url){
 var pos = url.lastIndexOf(".");
 return url.substr(pos);
}

分隔符:split();

stringObject.split()
把一個字元串分割成字元串數組

替換replace()
stringObject.replace();
在字元串中用一些字元替換另一些字元
返回值為string

toUpperCase()和toLowerCase()
stringObject.toUpperCase()把字元串轉換為大寫

stringObject.toLowerCase()把字元串轉換為小寫

JavaScriptDOM基礎,事件,對象

JavaScript的組成由ECMAScript,Browser Objects(DOM,BOM)組成的。

獲取一個元素和訪問一個元素的樣式,設置和刪除屬性。

document.getElementById("id")
document.getElementsByTagName("tag")

設置元素樣式
ele.style.styleName=styleValue

innerHTML屬性,className屬性,Dom元素上添加刪除獲取

ele.innerHTML=“dashucoding”
獲取,設置
ele.className=""
獲取,設置
重新設置類的,會替換原來存在的name的

獲取
ele.innerHTML
ele.className

獲取屬性
ele.getAttribute("attribute")
獲取ele元素的attribute屬性

設置屬性
ele.setAttribute("attribute",value);

刪除屬性
ele.removeAttribute("attribute");

事件是文檔或瀏覽器視窗中發生的一些特定的交互瞬間。

滑鼠事件

onload:頁面載入時觸發
onclick:滑鼠點擊時觸發
onmouseover:滑鼠滑過時觸發
onmouseout:滑鼠離開時觸發
onfoucs: 獲取焦點時
onblur:失去焦點時
onchange:域的內容改變時

var btn = document.getElementById("btn");
btn.onclick=function(){
 if(this.className=="dasha"){
  this.className="dashucoding";
  this.innerHTML="好";
 }else{
  
 }
}

btn.onclick = clickBtn;
function clickBtn(){
...
}
.btn{ width: 140px; height: 30px; line-height: 30px; background: green; color: #fff; font-size: 14px; text-align: center; border-radius: 5px; cursor: pointer;}
<script>
// 頁面載入時執行
window.onload=function(){
 // 獲取box
 var box=document.getElementById("box");
 var clicked = function() {
  alert('點擊');
 }
 box.onclick = clicked;
}

image.png

image.png

<script>
document.onkeypress=function(event){
 console.log(event.keyCode);
}
</script>

JavaScript中BOM對象

bom瀏覽器對象模型

對象:
window
navigator
screen
history
location
document
event

alert-confirm-prompt
window.open(pageurl,name,parameters)
打開一個新的瀏覽器視窗或查找一個已知的視窗
pageurl為子視窗路徑
name聲明瞭新視窗的名稱
parameters為視窗參數

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

JavaScript BOM

什麼是BOM,window對象,window對象的控制,彈出視窗方法。

什麼是BOM,BOM是瀏覽器對象模型

window是瀏覽器的一個實例,在瀏覽器中,window對象有雙重角色,JavaScript訪問瀏覽器的視窗,ECMAScript規定的Global對象。

window對象的方法:

window.alert("content")
顯示帶有一段消息和確定按鈕

window.confirm("message")
顯示一個帶有指定消息和確定及取消按鈕

window.prompt("text, defaultText")
要在對話框中顯示的純文本,和預設輸入文本

window.open(pageurl, name, parameters)
打開新的瀏覽器視窗

window.close()
關閉視窗

超時調用和間歇調用

setTimeout();
clearTimeout();

setInterval();
clearInterval();

location對象提供了與當前視窗中載入的文檔有關的信息,還提供了一些導航的功能。

location.href
返回當前載入頁面的網站url

location.href = window.location.href
location.hash
返回url中hash(#號後的字元),如果沒有返回空字元串

location.host
返回伺服器名稱和埠號

location.hostname
返回伺服器名稱

location.pathname
返回url中的目錄或文件名

location.port
返回埠號

location.protocol
返回使用協議

location.search
返回url的查詢字元串

location.replace();
重新定向url

location.reload();
重新載入當前顯示的頁面

dom中的history對象
history.back()返回歷史記錄的上一步
= history.go(-1)

history.forward()回到歷史記錄的下一步
= history.go(1)

history.go(-n)和history.go(n)

screen對象
screen.availWidth
screen.availHeight
返回屏幕的寬度和高度

navigator對象的userAgent判斷瀏覽器名稱,版本等

getMonth()和setMonth()

getMonth()返回表示月份的數字
setMonth()用來設置月份

dateObj.getMonth();
dateObj.setMonth(month, day);

var today = new Date(); Console.log(today.getMonth()+1);
var today = new Date();
console.log(today.setMonth(2));
console.log(today.getMonth());

DOM事件

什麼是事件,HTML事件,DOM0級事件,滑鼠與鍵盤事件,this的用法。

事件是 文檔或瀏覽器視窗中發生的一些交互。

html事件

<tag 事件="執行腳本"> </tag>
函數的調用

DOM0級事件

ele.事件=執行腳本

滑鼠,鍵盤

onload, onclick, onmouseover, onmouseout, onfocus, onblur, onchange, onsubmit, onmousedown, onmousemove, onmouseup, onresize, onscroll

onkeydown, onkeypress, onkeyup keyCode

滑鼠事件

onclick 在對象被點擊時發生
onmouseover 在滑鼠移動到對象時發生
onmouseout 在滑鼠移出時發生
onmouseup 在滑鼠按鍵被鬆開時發生
onmousemove 在滑鼠移動時發生
onmousedown 在滑鼠按下時發生

onload 子頁面元素載入完成時發生
onblur 在對象失去焦點發生
onfocus 在對象獲取焦點發生

onchange 在域的內容發生改變時
onsubmit 在表單提交時
onresize 在視窗大小被調整時
onscroll 在滾動條拖動時

onkeydown 在用戶按下一個鍵盤時
onkeypress 按下並釋放時發生
onkeyup 在按鍵被鬆開時發生
keyCode 在獲取按下的按鍵的字元代碼

ele.onclick = function() { 執行腳本 };
ele.onclick = fn;
function fn() { 執行腳本 };

image.png

image.png

image.png

流程式控制制語句

if(condition){}

prompt() 彈出輸入框

alert() 彈出警告對話框

if(condition){
}else{
}

if(condition){
}else if(condition){
}else {
}

string.length

document.wirte()

new Date().getDay()

switch(expression){
 case value:
 statement
 break;
 default:
 statement
}

for(1,2,3){
}

while,do-while,for

while(條件){
}

do{
}while()

JavaScript中的內置對象

array, string, math, date
push() unshift() pop() shift()
join() reverse() sort() concat() slice() splice()
indexOf() lastIndexOf()
charAt() charCodeAt()
slice(start, end) substring() substr(start, len)
splict() replace()
toUpperCase() toLowerCase()
Math.min() Math.max() Math.ceil() Math.floor() Math.round() Math.abs()
Math.random()

日期時間

getFullYear(), getMonth(), getDate(), getDay(), 

getHours(), getMinutes(), getSeconds(), getTime()

setFullYear(year), setMonth(mon), setDate(), setDay()

setHours(), setMinutes(), setSeconds(), setTime()

JavaScript中的函數

函數的作用,定義,調用,return,arguments

screen對象包含有客戶端顯示屏的信息

width 返回顯示器屏幕的寬度
height 返回顯示屏幕的高度
availHight 返回顯示屏的高度
availWidth 返回顯示屏的寬度

image.png

sort()方法用於對數組的元素進行排序

arrObject.sort(function);
var arrSort = arr.sort( function(a,b) { return a>b}); // 升序

DOM元素的方法

getElementById()
getElementsByTagName()
getElementsByName()
getElementsByClassName()

輪播圖

// css
* {
 margin: 0;
 padding: 0;
}
ul {
 list-style: none;
}
body{
 font-family: "微軟雅黑";
 color: #1419;
}
.main{
 width: 1200px;
 height: 460px;
 margin: 30px auto;
 overflow: hidden;
 position: relative
}
.banner {
 width: 1200px;
 height: 460px;
 overflow: hidden;
 position: relative
}
.banner-slide{
 width: 1200px;
 height: 460px;
 position: absolute;
 background-repeat: no-repeat;
 display: none;
}
.slide-active {
 dispaly: block;
}
.slide1{
 background-image: url();
}
.slide2{
 background-image: url();
}
.slide3{
 background-image: url();
}
.button{
 position:absolute;
 width: 40px;
 height: 80px;
 left: 244px;
 top: 50%;
 margin-top: -40px;
 background: url() no-repeat center center;
}
.button: hover{
 background-color: #333;
 opacity: 0.8;
 filter:alpha(opacity = 80);
}
.prev {
 transfrom: rotate(180deg);
}
.next{
 left: auto;
 right: 0;
}
.dots{
 position:absolute;
 right: 0;
 bottom: 24px;
 text-align: right;
}
.dots span{
 display: inline-block;
 width: 12px;
 height: 12px;
 line-height: 12px;
 border-radius: 50%;
 background: rgba(7,17,27,0.4);
 box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8) inset;
 background: #fff;
 margin-left: 8px;
 cursor: pointer;
}
.dots span.active {
 box-shadow: 0 0 0 2px rgba(7,17, 27, 0.4) inset;
 background: #fff;
}
// html
<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>輪播</title>
 <link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="main" id="main">
 <div class ="banner" id="banner">
  <a href="">
   <div class="banner-slide slide1 slide-active"></div>
  </a>
  <a href="">
   <div class="banner-slide slide2"></div>
  </a>
  <a href="">
   <div class="banner-slide slide3"></div>
  </a>
 </div>

 <a href="javascript:void(0)" class="button prev"></a>
 <a href="javascript:void(0)" class="button next"></a>
 // 圓點
 <div class="dots" id="dots">
  <span class="active"></span>
  <span></span>
  <span></span>
 </div>
</div>
 <script src="js/script.js"></script>
</body>
</html>
function byId(id){
 return typeof(id) === "string" ? document.getElementById(id) : id;
}
var index = 0, timer = null,
pics = byId("banner").getElementsByTagName("div"),
len = pics.length;

function slideImg() {
 var main=byId("main");
 main.onmouseover=function(){
  if(timer) clearInterval(timer);
 }
 main.onmouseout = function(){
   timer = setInterval(function(){
    index++;
    if(index >= len){
     index = 0;
     } 
     changeImg();
     console.log(index);
   },3000);
 }
  main.onmouseout();
}
slideImg();

image.png

image.png

結言

好了,歡迎在留言區留言,與大家分享你的經驗和心得。

感謝你學習今天的內容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。

感謝!承蒙關照!您真誠的贊賞是我前進的最大動力!

image

image


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

-Advertisement-
Play Games
更多相關文章
  • 一、通過SQL語句訪問遠程資料庫 --OPENROWSET函數 使用OPENROWSET()是個不錯的選擇,也可以用做跨庫查詢包括增、刪、改、查 下麵就來介紹一下OPENROWSET函數的運用 包含訪問 OLE DB 數據源中的遠程數據所需的全部連接信息。當訪問鏈接伺服器中的表時,這種方法是一種替代 ...
  • [20190415]11g下那些latch是共用的.txthttp://andreynikolaev.wordpress.com/2010/11/23/shared-latches-by-oracle-version/--//oracle並沒有文檔準確說明那些latch是支持共用,作者的鏈接通過使用 ...
  • 一臺老舊的資料庫伺服器(SQL Server 2005)突然報如下錯誤,而且資料庫處於RECOVERY PENDING ,檢查錯誤日誌,發現這個錯誤是突然出現的。沒有任何其它人為誤操作導致 Date 2019/4/15 10:57:47 Log SQL Server (Archive #1 - 20... ...
  • 《工業大數據白皮書(2019版)》基於工業大數據技術、產業發展現狀,重點圍繞“工業數據管理”這一熱點議題,提煉了當前工業領域數據管理的重要方法,完善了工業大數據標準體系,為推動工業大數據落地應用和戰略部署提供標準化支撐。 ...
  • 本文節選自作者書籍《軟體架構設計:大型網站技術架構與業務架構融合之道》。作者微信公眾號:架構之道與術。公眾號底部菜單有書友群可以加入,與作者和其他讀者進行深入討論。也可以在京東、天貓上購買紙質書籍。 6.6 事務實現原理之2:Undo Log 6.6.1 Undo Log是否一定需要 說到Undo ...
  • 各版本下載地址:http://download.redis.io/releases,本教程使用版本為redis-5.0.4。 附錄: (一)執行make命令報錯解決方案: 報錯內容: 解決方案: 在終端輸入如下命令,安裝Xcode命令行工具: 安裝完成後,繼續從make命令往下執行即可。 註:如有錯 ...
  • 背景 說到異常處理,你可能直接會認為不就是 try catch 的事情,至於寫一篇文章單獨來說明嗎? 如果你是這麼想的,那麼本篇說不定會給你驚喜哦~ 而且本篇聚焦在圖片的異常處理。 場景 學以致用,有具體的應用場景,能夠加深我們對知識的掌握。 我們以簡書的文章列表為例,如下圖: 假設產品有這樣的需求 ...
  • 得益於 HTML5 WebGL 技術的成熟,從技術上對工控管理的可視化,數據可視化變得簡單易行!完成對工控設備的管理效率,資源管理,風險管理等的大幅度提高,同時也對國家工業4.0計劃作出有力響應! 如本案例所示,是一個基於 HTML5 WebGL 技術實現的計量站三維可視化監控系統,在本案例中,具... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...