資料庫(js部分講解)

来源:https://www.cnblogs.com/oiqwyig/archive/2022/12/05/16953117.html
-Advertisement-
Play Games

JS簡介 JavaScript(簡稱JS) 是一種具有函數優先的輕量級,解釋型或即時編譯型編程語言雖然它是作為開發Web頁面的腳本語言而出名,但是它也被用到了很多非瀏覽器環境中,JavaScript 基於原型編程、多範式的動態腳本語言,並且支持面向對象、命令式、聲明式、函數式編程範式 ==JavaS ...


JS簡介

JavaScript(簡稱JS) 是一種具有函數優先的輕量級,解釋型或即時編譯型編程語言雖然它是作為開發Web頁面的腳本語言而出名,但是它也被用到了很多非瀏覽器環境中,JavaScript 基於原型編程、多範式的動態腳本語言,並且支持面向對象、命令式、聲明式、函數式編程範式

JavaScript與Java的關係

JavaScript的基礎語法和對象體系,是模仿Java而設計的

JavaScript語言的函數是一種獨立的數據類型以及基於原型對象的繼承鏈,是與java語法最大的兩點區別

JavaScript不需要編譯,由解釋器直接執行

IT行業鄙視鏈:架構師>後端研發>前端研發>產品經理>運營>UI設計師

img

架構師認為:沒有我,哪有他們,架構是一切的根基

後端開發認為:前端只會“畫圖”

前端開發認為:產品經理“嘴上功夫”

產品經理認為:我的產品已經很厲害了,還需要用力運營嗎?

運營師認為:我拼盡全力拉來的用戶,都被測試沒發現的bug搞丟了,而且UI不夠美觀交互不夠人性

ECMAScript的歷史

年份 名稱 描述
1997 ECMAScript 1 第一個版本
1998 ECMAScript 2 版本變更
1999 ECMAScript 3 添加正則表達式添加try/catch
ECMAScript 4 沒有發佈
2009 ECMAScript 5 添加"strict mode"嚴格模式添加JSON支持
2011 ECMAScript 5.1 版本變更
2015 ECMAScript 6 添加類和模塊
2016 ECMAScript 7 增加指數運算符(**)增加Array.prototype.includes

總結

JavaScript 是腳本語言
JavaScript 是一種輕量級的編程語言。

JavaScript 是可插入 HTML 頁面的編程代碼。

JavaScript 插入 HTML 頁面後,可由所有的現代瀏覽器執行。

JavaScript 很容易學習

js基礎

註釋語法

第一種是多行註釋"/**/",一般js文件開頭,介紹作者,函數等信息

/**author:xxx*day:2008-08-10*/

第二種註釋方法是最常見的"//",在程式間隨處可見,只能註釋單行

//這是一行註釋,只能註釋單行
//另一行註釋

第三種註釋不是很常見,會和html內的註釋混淆,不推薦使用

<!-這是一行註釋,只能註釋單行

引入js的多種方式

  1. headscript標簽內編寫

  2. headscript標簽src屬性引入外部js資源

  3. body內最底部通過script標簽src屬性引入外部js資源(最常用)
    註意:頁面的下載是從上往下的 所以操作標簽js代碼一定要等待標簽載入完畢再執行才可以正常運行

結束符號

JavaScript; 代表一段代碼的結束,多數情況下可以省略 ; 使用回車enter替代

變數與常量

什麼是變數

變數表示一些可以變化的數據。當一個數據的值需要經常改變或者不確定時,就應該用變數來表示

例如:超市中的儲物格就相當於一個變數, 裡面可以存儲各種不同的東西, 裡面存儲的東西也可以經常改變

什麼是常量

常量表示一些固定不變的數據

例如:現實生活中人的性別其實就可以看做是常量, 生下來是男孩一輩子都是男孩, 生下來是女孩一輩子都是女孩

變數聲明

JavaScript的變數名可以使用_,數字,字母,$組成,不能以數字開頭。
聲明變數使用 var 變數名; 的格式來進行聲明

var name = "Alex";
var age = 18;

"""
註意:
變數名是區分大小寫的
推薦使用駝峰式命名規則
保留字不能用做變數名
"""

ES6新增了let命令,用於聲明變數。其用法類似於var,但是所聲明的變數只在let命令所在的代碼塊內有效。例如:for迴圈的計數器就很適合使用let命令

for (let i=0;i<arr.length;i++){...}

ES6新增const用來聲明常量。一旦聲明,其值就不能改變

const PI = 3.1415;
PI // 3.1415

PI = 3
// TypeError: "PI" is read-only

基本數據類型

  • 在JS中查看數據類型的方式 typeof

數值類型(Number)

  • 在JS中所有的數值都是Number類型,包括整數和浮點數(小數)
var a = 12.34;
var b = 20;
var c = 123e5;  // 12300000
var d = 123e-5;  // 0.00123
  • NaN也屬於數值類型 意思是:不是一個數字(Not A Number)
    使用typeof 檢查一個NaN也會返回一個number
parseInt("123")  // 返回123
parseInt("ABC")  // 返回NaN,NaN屬性是代表非數字值的特殊值。該屬性用於指示某個值不是數字。
parseFloat("123.456")  // 返回123.456

字元類型(String)

/* 
             -在JS中字元串需要使用引號起來
             -使用雙引號或者單引號都可以,但是不要混用
             -引號不能嵌套,雙引號裡面不能放雙引號,單引號不能放單引號
                單引號裡面可以放雙引號
             */
            var str="hello";
            str ='我說:"今天心情好!"';
            /* 在字元串中我們可以使用\作為轉義符,
                當表示一些特殊符號時可以可以使用\進行轉義
                \"  表示"
                \'  表示'
                \n  表示換行
                \t  製表符
                \\  表示\
                加上雙引號表示字元串,不加雙引號表示變數
            */
            document.write(str)

常見內置方法:

方法 說明
.length 返回長度
.trim() 移除空白
.trimLeft() 移除左邊的空白
.trimRight() 移除右邊的空白
.charAt(n) 返回第n個字元
.concat(value, ...) 拼接
.indexOf(substring, start) 子序列位置
.substring(from, to) 根據索引獲取子序列
.slice(start, end) 切片
.toLowerCase() 小寫
.toUpperCase() 大寫
.split(delimiter, limit) 分割

註意:字元串拼接推薦使用加號

string.slice(start, stop)和string.substring(start, stop):

兩者的相同點:
如果start等於end,返回空字元串
如果stop參數省略,則取到字元串末
如果某個參數超過string的長度,這個參數會被替換為string的長度

substirng()的特點:
如果 start > stop ,start和stop將被交換
如果參數是負數或者不是數字,將會被0替換

silce()的特點:
如果 start > stop 不會交換兩者
如果start小於0,則切割從字元串末尾往前數的第abs(start)個的字元開始(包括該位置的字元)
如果stop小於0,則切割在從字元串末尾往前數的第abs(stop)個字元結束(不包含該位置字元)

布爾類型(Boolean)

/* 
            Boolean布爾值 
             布爾值只有兩個,主要用來邏輯判斷
             true   表示真
             false  表示假
             */
            var bool=false;
            console.log(typeof bool);
            console.log(bool);

(空字元串)、0、null、undefined、NaN都是false

null與undefined

/* 
            Null類型的值只有一個,就是null 
             null這個值專門表示空的對象
            使用typeof檢查一個null,會返回object
            undefined(未定義)類型只有一個,就undefind
            當聲明一個變數,但是並不給變數賦值時,它的值就是undefind
            使用typeof檢查一個undefind時也會返回undefind
            */
            var a=null;
            console.log(typeof a);//返回object
            var b;
            console.log(b)
            console.log(typeof b)

img

img

對象(object)

  • JavaScript 中的所有事物都是對象:字元串、數值、數組、函數...此外,JavaScript 允許自定義對象

  • JavaScript 提供多個內建對象,比如 StringDateArray 等等

  • 對象只是帶有屬性和方法的特殊數據類型

數組

  • 數組對象的作用是:使用單獨的變數名來存儲一系列的值。類似於Python中的列表
var a = [123, "ABC"];
console.log(a[1]);  // 輸出"ABC"

常用方法:

方法 說明
.length 數組的大小
.push(ele) 尾部追加元素
.pop() 獲取尾部的元素
.unshift(ele) 頭部插入元素
.shift() 頭部移除元素
.slice(start, end) 切片
.reverse() 反轉
.join(seq) 將數組元素連接成字元串
.concat(val, ...) 連接數組
.sort() 排序
.forEach() 將數組的每個元素傳遞給回調函數
.splice() 刪除元素,並向數組添加新元素。
.map() 返回一個數組元素調用函數處理後的值的新數組

運算符

算數運算符

數學運算符就是常見的加(+)、減(-)、乘(*)、除(/)、等於(=)、求冪(**)、自增(++)、自減(--)、加等於(+=)、減等於(-=)

var x=10;
var res1=x++;
var res2=++x;

res1;
10
res2;
12
"""
這裡由於的x++和++x在出現賦值運算式,x++會先賦值再進行自增1運算,而++x會先進行自增運算再賦值!
"""

比較運算符

大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、相等(==)、全等(===)、不等(!=)、不全等(!==)等;註意: 全等不光比較兩者值是否相同,還比較變數類型是否相同;不全等也是一樣;

註意:

1 == “1”  // true  弱等於
1 === "1"  // false 強等於
//上面這張情況出現的原因在於JS是一門弱類型語言(會自動轉換數據類型),所以當你用兩個等號進行比較時,JS內部會自動先將
//數值類型的1轉換成字元串類型的1再進行比較,所以我們以後寫JS涉及到比較時儘量用三等號來強制限制類型,防止判斷錯誤

邏輯運算符

&&(與)	||(或)  !(非)

運算符的優先順序

運算符 介紹
++ – ! 自增、自減、去反
* / % 用於number類型的乘、除、求餘
+ - 相加、相減
> >= < <= 用於比較的運算符
== === != !== 比較兩者是否相等
& ^ | 按位"與" 、按位"異或"、按位"或"
&& || 邏輯與、邏輯或
?. 條件運算
= += -= 賦值、賦值運算
多個計算

流程式控制制

順序結構

  • 最基本的流程式控制制,按照代碼先後順序依次執行

分支結構

  • 根據不同的條件去執行不同的代碼最後得到不同的結果

單if分支

if (條件){
        條件成立執行的代碼
    }

if...else分支

var a = 10;
if (a > 5){				# 條件
   console.log("yes");			# 條件成立執行的代碼
}else {					# 條件不成立執行的代碼
  console.log("no");
}

if...else if...else分支

var a = 10;
if (a > 5){				# 條件1
  console.log("a > 5");			# 條件1成立執行的代碼
}else if (a < 5) {			# 條件2
  console.log("a < 5");			# 條件1不成立條件2執行的代碼
}else {					# 條件1和2都不成立執行的代碼
  console.log("a = 5");
}

如果分支結構中else if很多還可以考慮使用switch語法

var day = new Date().getDay();
switch (day) {			# 條件
  case 0:			# 條件1
  console.log("Sunday");	# 條件1成立執行的代碼
  break;			# 如果沒有break會基於某個case一直執行下去
  case 1:			# 條件2
  console.log("Monday");	# 條件2成立執行的代碼
  break;
default:			# 條件都不滿足執行的代碼
  console.log("...")
}

switch中的case子句通常都會加break語句,否則程式會繼續執行後續case中的語句

for迴圈

for (var i=0;i<10;i++) {		# 起始條件;迴圈條件;條件處理
  console.log(i);			# 迴圈體代碼
}
let dd = {'name':'jason','age':18}
for(let k in dd){
     console.log(k)
}

while迴圈

var i = 0;
while (i < 10) {		# 迴圈條件
  console.log(i);		# 迴圈體代碼
  i++;
}

三元運算

語法結構為:條件 ? 操作1 : 操作2。 如果條件為真,執行操作1,否則執行操作2

(條件) ? 表達式1 : 表達式2
var a = 1;
var b = 2;
var c = a > b ? a : b
//這裡的三元運算順序是先寫判斷條件a>b再寫條件成立返回的值為a,條件不成立返回的值為b;三元運算可以嵌套使用;
var a=10,b=20;
var x=a>b ?a:(b=="20")?a:b;

x
10

函數

JavaScript 函數語法

JavaScript 函數通過function關鍵詞進行定義,其後是函數名和括弧 ()。
函數名可包含字母、數字、下劃線和美元符號(規則與變數名相同)。
圓括弧可包括由逗號分隔的參數:

function 函數名(形參){
    // 函數註釋
    函數體代碼
    return 返回值
}

匿名函數

var s1 = function(a, b){
  return a + b;
}

箭頭函數

var s1 = function(a, b){
  return a + b;
}

var f = () => 5;
var f = function(){return 5};

var sum = (num1, num2) => num1 + num2;
var sum = function(num1, num2){
  return num1 + num2;  
}

1.JS中函數的形參與實參個數可以不對應
傳少了就是undefined 傳多了不用
2.函數體代碼中有一個關鍵字arguments用來接收所有的實參
3.函數的返回值如果有多個需要自己處理成一個整體

內置對象

JavaScript中的所有事物都是對象:字元串、數字、數組、日期,等等。在JavaScript中,對象是擁有屬性和方法的數據

img

var d = new Date(); 
//getDate()                 獲取日
//getDay ()                 獲取星期
//getMonth ()               獲取月(0-11)
//getFullYear ()            獲取完整年份
//getYear ()                獲取年
//getHours ()               獲取小時
//getMinutes ()             獲取分鐘
//getSeconds ()             獲取秒
//getMilliseconds ()        獲取毫秒
//getTime ()                返回累計毫秒數(從1970/1/1午夜)


let dd = {name: 'jason', age: 18}
JSON.stringify(dd)	序列化
JSON.parse(ss)	   反序列化

定義正則兩種方式

var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;
1.全局模式的規律
	lastIndex
2.test匹配數據不傳預設傳undefined

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

-Advertisement-
Play Games
更多相關文章
  • 11章 併發數據 瞭解併發需要先瞭解的概念: 1.資料庫是一個可以共用資源,可以多用戶同時使用一個資料庫,該資料庫稱為多用戶資料庫,如訂票系統、銀行系統 2.多事務執行方式: 1.事務串列執行 : 務執行完在執行下一個事務 - 缺點資源浪費 2.交叉併發方式 : 在單處理機系統中,事務的並行事務是提 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者:王權富貴 1.概述 MySQL的分區表沒有禁止NULL值作為分區表達式的值,無論它是列值還是用戶提供的表達式的值,需要記住NULL值不是數字。My ...
  • 什麼是直方圖,在MySQL 8.0.3如何創建直方圖?MySQL的直方圖是如何影響執行計劃生成的?創建直方圖有哪些註意事項?直方圖和索引對優化器的選擇上有什麼差異,又該如何選擇?如何判斷直方圖對執行計劃的影響?MySQL官方blog的這篇文章用非常具體的示例回答了這一系列問題,let's go。原文 ...
  • 我國製造業擁有31個大類、179個中類和609個小類,是全球產業門類最齊全、產業體系最完整的製造業。二十大報告中強調:“堅持把發展經濟的著力點放在實體經濟上”“推動製造業高端化、智能化、綠色化發展”。這為中國製造邁向高質量發展指明瞭方向。 疫情發生以來,製造業面臨用工難、復產復工難、成本高、數據管理 ...
  • 1.4 Apache Hadoop 完全分散式集群搭建 軟體和操作系統版本 Hadoop框架是採用Java語言編寫,需要java環境(jvm) JDK版本:JDK8版本 集群: 知識點學習:統一使用vmware虛擬機虛擬三台linux節點,linux操作系統:Centos7 生產階段:建議最少5台服 ...
  • 本次我把CSS中的重難點整理出來,總共54個核心知識點,供大家複習,希望能幫到大家。這些重難點是進階高薪必需要掌握的知識點,同時也是面試必問的內容。 因為涉及的內容較多,我分5篇內容發出來,好逐一進行讓大家消化這些內容,本次我把前1-12個CSS重難點整理出來,具體內容如下: CSS選擇器與優先順序 ...
  • jQuery05 9.作業 9.1homework01 對多選框進行操作,輸出選中的多選框的個數,並且把選中愛好的名稱顯示。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>homework01</title ...
  • 前端開發之JavaScript 一、JavaScript簡介 ​ Javascript(簡稱‘JS’),是一門解釋型編程語言,主要用於Web、和瀏覽器中網頁中的動態渲染 ​ 是一門前端工程師的編程語言,相比於python它的邏輯並不是那麼嚴謹 二、JS基礎 語法註釋 單行註釋 //註釋內容 多行註釋 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...