主頁 > 企業開發 > 資料庫(js部分講解)

資料庫(js部分講解)

2022-12-06 06:47:23 企業開發

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

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/539268.html

標籤:其他

上一篇:記錄--react native 封裝人臉 檢測、美顏組件

下一篇:前端開發:4、JavaScript簡介、變數與常量、資料型別及內置方法、運算子、流程控制、回圈結構、內置方法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more