主頁 > 企業開發 > 00.JS前言

00.JS前言

2020-10-03 04:36:16 企業開發

前言:
學習一門編程語言的基本步驟
(01)了解背景知識

1.了解背景知識
   1)什么是 JavaScript 語言?
     JavaScript 是一種輕量級的腳本語言,所謂“腳本語言”(script language),指的是它不具備開發作業系統的能力,而是只用來撰寫控制其他大型應用程式(比如瀏覽器)的“腳本”,
     JavaScript 也是一種嵌入式(embedded)語言,它本身提供的核心語法不算很多,只能用來做一些數學和邏輯運算,JavaScript 本身不提供任何與 I/O(輸入/輸出)相關的 API,都要靠宿主環境(host)提供,所以 JavaScript 只合適嵌入更大型的應用程式環境,去呼叫宿主環境提供的底層 API,
     目前,已經嵌入 JavaScript 的宿主環境有多種,最常見的環境就是瀏覽器,另外還有服務器環境,也就是 Node 專案,
     從語法角度看,JavaScript 語言是一種“物件模型”語言,各種宿主環境通過這個模型,描述自己的功能和操作介面,從而通過 JavaScript 控制這些功能,但是,JavaScript 并不是純粹的“面向物件語言”,還支持其他編程范式(比如函式式編程),這導致幾乎任何一個問題,JavaScript 都有多種解決方法,閱讀本書的程序中,你會詫異于 JavaScript 語法的靈活性,
     JavaScript 的核心語法部分相當精簡,只包括兩個部分:基本的語法構造(比如運算子、控制結構、陳述句)和標準庫(就是一系列具有各種功能的物件比如Array、Date、Math等),除此之外,各種宿主環境提供額外的 API(即只能在該環境使用的介面),以便 JavaScript 呼叫,以瀏覽器為例,它提供的額外 API 可以分成三大類,
     瀏覽器控制類:操作瀏覽器
          DOM 類:操作網頁的各種元素
          Web 類:實作互聯網的各種功能
     如果宿主環境是服務器,則會提供各種作業系統的 API,比如檔案操作 API、網路通信 API等等,這些你都可以在 Node 環境中找到,

   2)為什么學習 JavaScript?
     JavaScript 語言有一些顯著特點,使得它非常值得學習,它既適合作為學習編程的入門語言,也適合當作日常開發的作業語言,它是目前最有希望、前途最光明的計算機語言之一,
         2.1)操控瀏覽器的能力
               JavaScript 的發明目的,就是作為瀏覽器的內置腳本語言,為網頁開發者提供操控瀏覽器的能力,它是目前唯一一種通用的瀏覽器腳本語言,所有瀏覽器都支持,它可以讓網頁呈現各種特殊效果,為用戶提供良好的互動體驗,
              目前,全世界幾乎所有網頁都使用 JavaScript,如果不用,網站的易用性和使用效率將大打折扣,無法成為操作便利、對用戶友好的網站,
              對于一個互聯網開發者來說,如果你想提供漂亮的網頁、令用戶滿意的上網體驗、各種基于瀏覽器的便捷功能、前后端之間緊密高效的聯系,JavaScript 是必不可少的工具,
         2.2)廣泛的使用領域
             近年來,JavaScript 的使用范圍,慢慢超越了瀏覽器,正在向通用的系統語言發展,
           (1)瀏覽器的平臺化
                  隨著 HTML5 的出現,瀏覽器本身的功能越來越強,不再僅僅能瀏覽網頁,而是越來越像一個平臺,JavaScript 因此得以呼叫許多系統功能,比如操作本地檔案、操作圖片、呼叫攝像頭和麥克風等等,這使得 JavaScript 可以完成許多以前無法想象的事情,
           (2)Node
                  Node 專案使得 JavaScript 可以用于開發服務器端的大型專案,網站的前后端都用 JavaScript 開發已經成為了現實,有些嵌入式平臺(Raspberry Pi)能夠安裝 Node,于是 JavaScript 就能為這些平臺開發應用程式,
           (3)資料庫操作
                   JavaScript 甚至也可以用來操作資料庫,NoSQL 資料庫這個概念,本身就是在 JSON(JavaScript Object Notation)格式的基礎上誕生的,大部分 NoSQL 資料庫允許 JavaScript 直接操作,基于 SQL 語言的開源資料庫 PostgreSQL 支持 JavaScript 作為操作語言,可以部分取代 SQL 查詢語言,
           (4)移動平臺開發
                   JavaScript 也正在成為手機應用的開發語言,一般來說,安卓平臺使用 Java 語言開發,iOS 平臺使用 Objective-C 或 Swift 語言開發,許多人正在努力,讓 JavaScript 成為各個平臺的通用開發語言,
                   PhoneGap 專案就是將 JavaScript 和 HTML5 打包在一個容器之中,使得它能同時在 iOS 和安卓上運行,Facebook 公司的 React Native 專案則是將 JavaScript 寫的組件,編譯成原生組件,從而使它們具備優秀的性能,
                   Mozilla 基金會的手機作業系統 Firefox OS,更是直接將 JavaScript 作為作業系統的平臺語言,但是很可惜這個專案沒有成功,
           (5)內嵌腳本語言
                   越來越多的應用程式,將 JavaScript 作為內嵌的腳本語言,比如 Adobe 公司的著名 PDF 閱讀器 Acrobat、Linux 桌面環境 GNOME 3,
           (6)跨平臺的桌面應用程式
                   Chromium OS、Windows 8 等作業系統直接支持 JavaScript 撰寫應用程式,Mozilla 的 Open Web Apps 專案、Google 的 Chrome App 專案、GitHub 的 Electron 專案、以及 TideSDK 專案,都可以用來撰寫運行于 Windows、Mac OS 和 Android 等多個桌面平臺的程式,不依賴瀏覽器,
           (7)小結
                  可以預期,JavaScript 最終將能讓你只用一種語言,就開發出適應不同平臺(包括桌面端、服務器端、手機端)的程式,早在2013年9月的統計之中,JavaScript 就是當年 GitHub 上使用量排名第一的語言,
著名程式員 Jeff Atwood 甚至提出了一條 “Atwood 定律”:
                “所有可以用 JavaScript 撰寫的程式,最終都會出現 JavaScript 的版本,”(Any application that can be written in JavaScript will eventually be written in JavaScript.)
     2.3)易學性
         相比學習其他語言,學習 JavaScript 有一些有利條件,
       (1)學習環境無處不在
              只要有瀏覽器,就能運行 JavaScript 程式;只要有文本編輯器,就能撰寫 JavaScript 程式,這意味著,幾乎所有電腦都原生提供 JavaScript 學習環境,不用另行安裝復雜的 IDE(集成開發環境)和編譯器,
       (2)簡單性
              相比其他腳本語言(比如 Python 或 Ruby),JavaScript 的語法相對簡單一些,本身的語法特性并不是特別多,而且,那些語法中的復雜部分,也不是必需要學會,你完全可以只用簡單命令,完成大部分的操作,
       (3)與主流語言的相似性
              JavaScript 的語法很類似 C/C++ 和 Java,如果學過這些語言(事實上大多數學校都教),JavaScript 的入門會非常容易,
              必須說明的是,雖然核心語法不難,但是 JavaScript 的復雜性體現在另外兩個方面,
              首先,它涉及大量的外部 API,JavaScript 要發揮作用,必須與其他組件配合,這些外部組件五花八門,數量極其龐大,幾乎涉及網路應用的各個方面,掌握它們絕非易事,
              其次,JavaScript 語言有一些設計缺陷,某些地方相當不合理,另一些地方則會出現怪異的運行結果,學習 JavaScript,很大一部分時間是用來搞清楚哪些地方有陷阱,Douglas Crockford 寫過一本有名的書,名字就叫《JavaScript: The Good Parts》,言下之意就是這門語言不好的地方很多,必須寫一本書才能講清楚,另外一些程式員則感到,為了更合理地撰寫 JavaScript 程式,就不能用 JavaScript 來寫,而必須發明新的語言,比如 CoffeeScript、TypeScript、Dart 這些新語言的發明目的,多多少少都有這個因素,
              盡管如此,目前看來,JavaScript 的地位還是無法動搖,加之,語言標準的快速進化,使得 JavaScript 功能日益增強,而語法缺陷和怪異之處得到了彌補,所以,JavaScript 還是值得學習,況且它的入門真的不難,
         2.4)強大的性能
             JavaScript 的性能優勢體現在以下方面,
           (1)靈活的語法,表達力強,
                  JavaScript 既支持類似 C 語言清晰的程序式編程,也支持靈活的函式式編程,可以用來寫并發處理(concurrent),這些語法特性已經被證明非常強大,可以用于許多場合,尤其適用異步編程,
                 JavaScript 的所有值都是物件,這為程式員提供了靈活性和便利性,因為你可以很方便地、按照需要隨時創造資料結構,不用進行麻煩的預定義,
                 JavaScript 的標準還在快速進化中,并不斷合理化,添加更適用的語法特性,
           (2)支持編譯運行,
                  JavaScript 語言本身,雖然是一種解釋型語言,但是在現代瀏覽器中,JavaScript 都是編譯后運行,程式會被高度優化,運行效率接近二進制程式,而且,JavaScript 引擎正在快速發展,性能將越來越好,
                  此外,還有一種 WebAssembly 格式,它是 JavaScript 引擎的中間碼格式,全部都是二進制代碼,由于跳過了編譯步驟,可以達到接近原生二進制代碼的運行速度,各種語言(主要是 C 和 C++)通過編譯成 WebAssembly,就可以在瀏覽器里面運行,
           (3)事件驅動和非阻塞式設計,
                   JavaScript 程式可以采用事件驅動(event-driven)和非阻塞式(non-blocking)設計,在服務器端適合高并發環境,普通的硬體就可以承受很大的訪問量
         2.5)開放性
             JavaScript 是一種開放的語言,它的標準 ECMA-262 是 ISO 國際標準,寫得非常詳盡明確;該標準的主要實作(比如 V8 和 SpiderMonkey 引擎)都是開放的,而且質量很高,這保證了這門語言不屬于任何公司或個人,不存在著作權和專利的問題,
            語言標準由 TC39 委員會負責制定,該委員會的運作是透明的,所有討論都是開放的,會議記錄都會對外公布,
            不同公司的 JavaScript 運行環境,兼容性很好,程式不做調整或只做很小的調整,就能在所有瀏覽器上運行,

   3)JavaScript語言的誕生
      JavaScript 因為互聯網而生,緊跟著瀏覽器的出現而問世,回顧它的歷史,就要從瀏覽器的歷史講起,
      1990年底,歐洲核能研究組織(CERN)科學家 Tim Berners-Lee,在全世界最大的電腦網路——互聯網的基礎上,發明了萬維網(World Wide Web),從此可以在網上瀏覽網頁檔案,最早的網頁只能在作業系統的終端里瀏覽,也就是說只能使用命令列操作,網頁都是在字符視窗中顯示,這當然非常不方便,
      1992年底,美國國家超級電腦應用中心(NCSA)開始開發一個獨立的瀏覽器,叫做 Mosaic,這是人類歷史上第一個瀏覽器,從此網頁可以在圖形界面的視窗瀏覽,
      1994年10月,NCSA 的一個主要程式員 Marc Andreessen 聯合風險投資家 Jim Clark,成立了 Mosaic 通信公司(Mosaic Communications),不久后改名為 Netscape,這家公司的方向,就是在 Mosaic 的基礎上,開發面向普通用戶的新一代的瀏覽器 Netscape Navigator,
      1994年12月,Navigator 發布了1.0版,市場份額一舉超過90%,
      Netscape 公司很快發現,Navigator 瀏覽器需要一種可以嵌入網頁的腳本語言,用來控制瀏覽器行為,當時,網速很慢而且上網費很貴,有些操作不宜在服務器端完成,比如,如果用戶忘記填寫“用戶名”,就點了“發送”按鈕,到服務器再發現這一點就有點太晚了,最好能在用戶發出資料之前,就告訴用戶“請填寫用戶名”,這就需要在網頁中嵌入小程式,讓瀏覽器檢查每一欄是否都填寫了,
      管理層對這種瀏覽器腳本語言的設想是:功能不需要太強,語法較為簡單,容易學習和部署,那一年,正逢 Sun 公司的 Java 語言問世,市場推廣活動非常成功,Netscape 公司決定與 Sun 公司合作,瀏覽器支持嵌入 Java 小程式(后來稱為 Java applet),但是,瀏覽器腳本語言是否就選用 Java,則存在爭論,后來,還是決定不使用 Java,因為網頁小程式不需要 Java 這么“重”的語法,但是,同時也決定腳本語言的語法要接近 Java,并且可以支持 Java 程式,這些設想直接排除了使用現存語言,比如 Perl、Python 和 TCL,
      1995年,Netscape 公司雇傭了程式員 Brendan Eich 開發這種網頁腳本語言,Brendan Eich 有很強的函式式編程背景,希望以 Scheme 語言(函式式語言鼻祖 LISP 語言的一種方言)為藍本,實作這種新語言,
      1995年5月,Brendan Eich 只用了10天,就設計完成了這種語言的第一版,它是一個大雜燴,語法有多個來源,
            基本語法:借鑒 C 語言和 Java 語言,
            資料結構:借鑒 Java 語言,包括將值分成原始值和物件兩大類,
            函式的用法:借鑒 Scheme 語言和 Awk 語言,將函式當作第一等公民,并引入閉包,
            原型繼承模型:借鑒 Self 語言(Smalltalk 的一種變種),
            正則運算式:借鑒 Perl 語言,
            字串和陣列處理:借鑒 Python 語言,
      為了保持簡單,這種腳本語言缺少一些關鍵的功能,比如塊級作用域、模塊、子型別(subtyping)等等,但是可以利用現有功能找出解決辦法,這種功能的不足,直接導致了后來 JavaScript 的一個顯著特點:對于其他語言,你需要學習語言的各種功能,而對于 JavaScript,你常常需要學習各種解決問題的模式,而且由于來源多樣,從一開始就注定,JavaScript 的編程風格是函式式編程和面向物件編程的一種混合體,
      Netscape 公司的這種瀏覽器腳本語言,最初名字叫做 Mocha,1995年9月改為 LiveScript,12月,Netscape 公司與 Sun 公司(Java 語言的發明者和所有者)達成協議,后者允許將這種語言叫做 JavaScript,這樣一來,Netscape 公司可以借助 Java 語言的聲勢,而 Sun 公司則將自己的影響力擴展到了瀏覽器,
      之所以起這個名字,并不是因為 JavaScript 本身與 Java 語言有多么深的關系(事實上,兩者關系并不深,詳見下節),而是因為 Netscape 公司已經決定,使用 Java 語言開發網路應用程式,JavaScript 可以像膠水一樣,將各個部分連接起來,當然,后來的歷史是 Java 語言的瀏覽器插件失敗了,JavaScript 反而發揚光大,
      1995年12月4日,Netscape 公司與 Sun 公司聯合發布了 JavaScript 語言,對外宣傳 JavaScript 是 Java 的補充,屬于輕量級的 Java,專門用來操作網頁,
      1996年3月,Navigator 2.0 瀏覽器正式內置了 JavaScript 腳本語言,

      3.1)JavaScript 與 Java 的關系
          這里專門說一下 JavaScript 和 Java 的關系,它們是兩種不一樣的語言,但是彼此存在聯系,
          JavaScript 的基本語法和物件體系,是模仿 Java 而設計的,但是,JavaScript 沒有采用 Java 的靜態型別,正是因為 JavaScript 與 Java 有很大的相似性,所以這門語言才從一開始的 LiveScript 改名為 JavaScript,基本上,JavaScript 這個名字的原意是“很像Java的腳本語言”,
          JavaScript 語言的函式是一種獨立的資料型別,以及采用基于原型物件(prototype)的繼承鏈,這是它與 Java 語法最大的兩點區別,JavaScript 語法要比 Java 自由得多,
          另外,Java 語言需要編譯,而 JavaScript 語言則是運行時由解釋器直接執行,
          總之,JavaScript 的原始設計目標是一種小型的、簡單的動態語言,與 Java 有足夠的相似性,使得使用者(尤其是 Java 程式員)可以快速上手,

      3.2)JavaScript 與 ECMAScript 的關系
          1996年8月,微軟模仿 JavaScript 開發了一種相近的語言,取名為JScript(JavaScript 是 Netscape 的注冊商標,微軟不能用),首先內置于IE 3.0,Netscape 公司面臨喪失瀏覽器腳本語言的主導權的局面,
          1996年11月,Netscape 公司決定將 JavaScript 提交給國際標準化組織 ECMA(European Computer Manufacturers Association),希望 JavaScript 能夠成為國際標準,以此抵抗微軟,ECMA 的39號技術委員會(Technical Committee 39)負責制定和審核這個標準,成員由業內的大公司派出的工程師組成,目前共25個人,該委員會定期開會,所有的郵件討論和會議記錄,都是公開的,
          1997年7月,ECMA 組織發布262號標準檔案(ECMA-262)的第一版,規定了瀏覽器腳本語言的標準,并將這種語言稱為 ECMAScript,這個版本就是 ECMAScript 1.0 版,之所以不叫 JavaScript,一方面是由于商標的關系,Java 是 Sun 公司的商標,根據一份授權協議,只有 Netscape 公司可以合法地使用 JavaScript 這個名字,且                         JavaScript 已經被 Netscape 公司注冊為商標,另一方面也是想體現這門語言的制定者是 ECMA,不是 Netscape,這樣有利于保證這門語言的開放性和中立性,因此,              ECMAScript 和 JavaScript 的關系是,前者是后者的規格,后者是前者的一種實作,在日常場合,這兩個詞是可以互換的,
          ECMAScript 只用來標準化 JavaScript 這種語言的基本語法結構,與部署環境相關的標準都由其他標準規定,比如 DOM 的標準就是由 W3C組織(World Wide Web Consortium)制定的,
          ECMA-262 標準后來也被另一個國際標準化組織 ISO(International Organization for Standardization)批準,標準號是 ISO-16262,

      3.3)JavaScript 的版本
           1997年7月,ECMAScript 1.0發布,
           1998年6月,ECMAScript 2.0版發布,
           1999年12月,ECMAScript 3.0版發布,成為 JavaScript 的通行標準,得到了廣泛支持,
           2007年10月,ECMAScript 4.0版草案發布,對3.0版做了大幅升級,預計次年8月發布正式版本,草案發布后,由于4.0版的目標過于激進,各方對于是否通過這個標準,發生了嚴重分歧,以 Yahoo、Microsoft、Google 為首的大公司,反對 JavaScript 的大幅升級,主張小幅改動;以 JavaScript 創造者 Brendan Eich 為首的 Mozilla 公司,則堅持當前的草案,
           2008年7月,由于對于下一個版本應該包括哪些功能,各方分歧太大,爭論過于激進,ECMA 開會決定,中止 ECMAScript 4.0 的開發(即廢除了這個版本),將其中涉及現有功能改善的一小部分,發布為 ECMAScript 3.1,而將其他激進的設想擴大范圍,放入以后的版本,由于會議的氣氛,該版本的專案代號起名為 Harmony(和諧),會后不久,ECMAScript 3.1 就改名為 ECMAScript 5,
           2009年12月,ECMAScript 5.0版 正式發布,Harmony 專案則一分為二,一些較為可行的設想定名為 JavaScript.next 繼續開發,后來演變成 ECMAScript 6;一些不是很成熟的設想,則被視為 JavaScript.next.next,在更遠的將來再考慮推出,TC39 的總體考慮是,ECMAScript 5 與 ECMAScript 3 基本保持兼容,較大的語法修正和新功能加入,將由 JavaScript.next 完成,當時,JavaScript.next 指的是ECMAScript 6,第六版發布以后,將指 ECMAScript 7,TC39 預計,ECMAScript 5 會在2013年的年中成為 JavaScript 開發的主流標準,并在此后五年中一直保持這個位置,
           2011年6月,ECMAScript 5.1版發布,并且成為 ISO 國際標準(ISO/IEC 16262:2011),到了2012年底,所有主要瀏覽器都支持 ECMAScript 5.1版的全部功能,
           2013年3月,ECMAScript 6 草案凍結,不再添加新功能,新的功能設想將被放到 ECMAScript 7,
           2013年12月,ECMAScript 6 草案發布,然后是12個月的討論期,聽取各方反饋,
           2015年6月,ECMAScript 6 正式發布,并且更名為“ECMAScript 2015”,這是因為 TC39 委員會計劃,以后每年發布一個 ECMAScript 的版本,下一個版本在2016年發布,稱為“ECMAScript 2016”,2017年發布“ECMAScript 2017”,以此類推,

 

 

文章來源:https://wangdoc.com/javascript/basic/index.html

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

標籤:JavaScript

上一篇:koa中間執行機制

下一篇:宣傳頁專案開發(三)

標籤雲
其他(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