本文目錄一覽:
- 1、用js或jquery生成本地txt文件的代碼
- 2、2. threejs源碼閱讀——math/matrix
- 3、min.js跟js的區別?
- 4、代碼說明文檔需要交付么
- 5、如何組織大型JavaScript應用中的代碼
- 6、怎麼才可以修改網頁中的JS源碼文件
用js或jquery生成本地txt文件的代碼
很難實現直接創建文件到本地,因為許可權不允許。但可以彈出一個另存為對話框,讓用戶點一下確定就保存。所以代碼可以用js或jquery生成本地txt文件。
代碼就是程序員用開發工具所支持的語言寫出來的源文件,是一組由 字元、符號或信號 碼元以離散形式表示信息的明確的規則體系。代碼設計的原則包括唯一確定性、標準化和通用性、可擴充性與穩定性、便於識別與記憶、力求短小與格式統一以及容易修改等。
源代碼是代碼的分支,某種意義上來說,源代碼相當於代碼。現代程序語言中,源代碼可以書籍或磁帶形式出現,但最為常用格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。計算機源代碼最終目的是將人類可讀文本翻譯成為計算機可執行的二進位 指令,這種過程叫 編譯,它由通過編譯器完成。
作用:
生成目標代碼,即計算機可以識別的代碼。對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。
需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。
代碼組合:
源代碼作為軟體的特殊部分,可能被包含在一個或多個文件中。一個程序不必用同一種格式的源代碼書寫。例如,一個程序如果有 C語言庫的支持,那麼就可以用C語言;而另一部分為了達到比較高的運行效率,則可以用 彙編語言編寫。
較為複雜的軟體,一 般需要數十種甚至上百種的源代碼的參與。為了降低種複雜度,必須引入一種可以描述各個源代碼之間聯繫,並且如 何正確編譯的系統。在這樣的背景下,修訂控制系統(RCS)誕生了,並成為研發者對代碼修訂的必備工具之一。
還有另外一種組合,源代碼的編寫和編譯分 別在不同的平台上實現,專業術語叫做軟體移植。
2. threejs源碼閱讀——math/matrix
與 Vector介面 一樣,threejs也在 Matrix3.d.ts 文件中提供了一個 Matrix 介面,並且在 Matrix3 (3×3矩陣類)和 Maxtrix4 (4×4矩陣類)中實現了該介面。
我們可以看到,矩陣中的元素是用數組的方式儲存的。由於不同維度的矩陣內所用的元素個數不同,所以Matrix3和Matrix4的set方法是分開聲明在每個類中的。這裡我們以Matrix3.set為例:
可以看到,在set時是以行優先的順序進行傳值的,也就是第一行第一個,第一行第二個,第一行第三個,第二行第一個,第二行第二個…
但是在set方法的實現中,可以看到elements數組內是以列優先的順序進行存儲的:
簡單點說,這裡只是 存儲方式的不同 。由於大多數人都習慣以行優先的方式考慮矩陣,所以threejs中所有的文檔都是以行優先的方式表示的。但如果我們想要閱讀源碼,就要注意到[n11, n12, n13, n21 … n33]並不是按順序儲存在elements中。事實上如果我們按順序讀取elements中的元素並以行優先的方式組成矩陣,它將是原本矩陣的轉置矩陣。
如同Vector的類型,Matrix類型中所有返回值為自身類對象的方法也是原地修改該對象。例如 Transpose轉置
所有的Matrix也提供了clone和copy方法,用於深拷貝不同Matrix對象。
那麼threejs中的向量與矩陣進行計算是以什麼形式進行的呢?這裡我們舉一個例子。
在Vector3類中提供了appyMatrix3這個方法,這個方法以一個3×3的矩陣作為參數,相乘後原地修改向量的值。
如果我們將Vector3看做 三行一列的矩陣(3×1) 的話,那麼就需要左乘3×3矩陣,最後得到列向量:
如果我們將Vecot3看做 一行三列的矩陣(1×3) 的話,那麼就需要右乘3×3矩陣,最後得到行向量:
接下來,我們再假設一個向量
加入齊次坐標w=1,來表示三維空間中的一個點(1,2,3)
然後我們構建一個仿射變換矩陣做縮放+平移運算
即沿著xyz軸均縮放2倍,然後沿著xyz移動5個單位距離。最終結果是:
這個計算我們會使用Vector3.applyMatrix4
接下來驗證一下:
控制台列印結果:
threejs中的矩陣以 行優先 的形式初始化,以 列優先 的形式儲存。
threejs中的向量採用 列向量 ,與矩陣做 左乘運算 。
threejs中一個三維向量與4×4的矩陣進行運算時,會先給三維向量補充第四個值w,也就是齊次坐標,w值與矩陣的第四行有關係:
在上面的例子中,我們使用了一個縮放+平移的 仿射變換矩陣 作為例子,此時w為1。
min.js跟js的區別?
區別:
jquery.js是完整的未壓縮的jQuery庫,文件比較大,一般用於閱讀學習源碼或修改源碼,一般不用於線上項目。
jquery.min.js是由完整版的jQuery庫經過壓縮得來,壓縮後功能與未壓縮的完全一樣,只是將其中的空白字元、注釋、空行等與邏輯無關的內容刪除,並進行一些優化。這個版本一般用於網站引用使用,減小文件體積,降低網站流量,提升訪問速度等。
延展閱讀:
JQuery是繼prototype之後又一個優秀的Javascript庫。它是輕量級的js庫 ,它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及後續版本將不再支持IE6/7/8瀏覽器。jQuery使用戶能更方便地處理HTML、events、實現動畫效果,並且方便地為網站提供AJAX交互。
jQuery比較大的優勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁面保持代碼和html內容分離,也就是說,不用再在html裡面插入一堆js來調用命令了,只需要定義id即可。
jQuery是一個兼容多瀏覽器的javascript庫,核心理念是write less,do more。
jQuery是免費、開源的,使用MIT許可協議。jQuery的語法設計可以使開發更加便捷,例如操作文檔對象、選擇DOM元素、製作動畫效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開發者編寫插件。其模塊化的使用方式使開發者可以很輕鬆的開發出功能強大的靜態或動態網頁。
代碼說明文檔需要交付么
需要交付。
與項目源代碼一起交付的文檔:
一、項目代碼說明文檔
1、項目源代碼總體使用的技術框架,前台頁面JS框架,UI及其他第三方JS控制項,列出項目使用哪些開源軟體;
2、項目框架的講解:框架代碼構成,各個包的作用,配置文件的使用,頁面樣式文件的說明,page文件夾下各文件夾及所含頁面說明等,其他對框架進行過改進升級代碼的說明;
3、項目模塊的列表清單及其所涉及的的頁面文件及主要serlvet文件;
4、在項目模塊的主要代碼上添加註釋,以便進行二次開發;
擴展資料:
中文解釋器的特色:
1,不需要空格分詞,畢竟中國人沒有打空格的習慣。
2,看上去要一段一段的,比較像中文文檔。
3,起碼得是漢字。
4,懶得寫語法高亮,那就借用一下編輯器的markdown顯示好了,源代碼用markdown查看,就是很正常的文檔,一般人肯定想不出這還能運行。
4,函數的參數不需要跟在最後面,可以放在函數語句的任意位置,符合正常說話習慣。
所有字元都是全形,不需要切換輸入法。
如何組織大型JavaScript應用中的代碼
以下為CSDN編譯:地板上堆放的衣服首先,我們來看看angular-seed,它是AngularJS應用開發的官方入門項目,其文件結構是這樣的:css/img/js/app.jscontrollers.jsdirectives.jsfilters.jsservices.jslib/partials/看起來就像是把衣服按類型堆在地板上,一堆襪子、一堆內衣、一堆襯衫等等。你知道拐角的那堆襪子里有今天要穿的黑色羊毛襪,但你仍需要花上一段時間來尋找。這種組織方式很凌亂。一旦你的代碼中存在6、7個甚至更多的控制器或者服務,文件管理就會變得難以處理:很難找到想要尋找的對象,源代碼控制中的文件也變更集變得難懂。襪子抽屜常見的JavaScript文件結構還有另一種形式,即按原型將文件分類。我們繼續用整理衣服來比喻:現在我們買了有很多抽屜的衣櫃,打算將襪子放在其中一個抽屜里,內衣放在另一個抽屜,再把襯衫整齊地疊在第三個抽屜……想像一下,我們正在開發一個簡單的電子商務網站,包括登陸流程、產品目錄以及購物車UI。同樣,我們將文件分為以下幾個原型:models(業務邏輯和狀態)、controllers以及services(HTTP/JSON端點加密),而按照Angular默認那樣非籠統地歸到「service」架構。因此我們的JavaScript目錄變成了這樣:controllers/LoginController.jsRegistrationController.jsProductDetailController.jsSearchResultsController.jsdirectives.jsfilters.jsmodels/CartModel.jsProductModel.jsSearchResultsModel.jsUserModel.jsservices/CartService.jsUserService.jsProductService.js不錯,現在已經可以通過樹形文件目錄或者IDE快捷鍵更方便地查找文件了,源代碼控制中的變更集(changeset)也能夠清楚地描述文件修改記錄。雖然已經獲得了極大的改進,但是仍有一定的局限性。想像一下,你現在正在辦公室,突然發現明天有個商務出差,需要幾套乾洗的衣服,因此給家裡打電話告訴另一半把黑色和藍色的西裝交給清潔工,還有黑紋領帶配灰色襯衫、白襯衫配純黃領帶。如果你的另一半並不熟悉衣櫃,又該如何從三條黃色的領帶中挑出你的正確需求?模塊化希望衣服的比喻沒有讓你覺得過於陳舊,下面舉一個實例:你的搭檔是新來的開發者,他被要求去修補這個複雜應用中的一處bug。他掃過這些文件夾,看到了controllers、models、services等文件夾整齊地排列著,但是他仍然不清楚對象間的依賴關係。處於某些原因,他希望能夠重用部分代碼,這需要從各個文件夾中搜集相關文件,而且常常會遺漏某些文件夾中的對象。信或不信,你確實很少會在新項目中重用很多代碼,但你很可能需要重用登陸系統這樣的整個模塊。所以,是不是按功能劃分文件會更好?下面的文件結構是以功能劃分後的應用結構:cart/CartModel.jsCartService.jscommon/directives.jsfilters.jsproduct/search/SearchResultsController.jsSearchResultsModel.jsProductDetailController.jsProductModel.jsProductService.jsuser/LoginController.jsRegistrationController.jsUserModel.jsUserService.js雖然現實世界中有空間限制,難以隨意整理服裝,但是編程中類似的處理卻是零成本的。現在即使是新來的開發者也能通過頂級文件夾的命名理解應用的功能,相同文件夾下的文件會存在互相依賴等關係,而且僅僅通過瀏覽文件組織結構就能輕易理解登錄、註冊等功能的原理。新的項目也可以通過複製粘貼來重用其中的代碼了。使用AngularJS我們可以進一步將相關代碼組織為模塊:var userModule = angular.module(‘userModule’,[]); userModule.factory(‘userService’, [‘$http’, function($http) { return new UserService($http); }]); userModule.factory(‘userModel’, [‘userService’, function(userService) { return new UserModel(userService); }]); userModule.controller(‘loginController’, [‘$scope’, ‘userModel’, LoginController]); userModule.controller(‘registrationController’, [‘$scope’, ‘userModel’, RegistrationController]);如果我們將UserModule.js文件放到user文件夾,它就成了這個模塊中使用到的對象的「manifest」,這也是適合RequireJS或者Browserify中放置某些載入指令的地方如何處理通用代碼每個應用都會有某些代碼廣泛使用在多個模塊中,我們常常使用名為「commom」或者「shared」的文件夾來存放這些功能代碼。又該如何處理這些通用代碼呢?如果模塊中的對象需要直接訪問幾個「通用」對象,為這些對象提供幾個Facade(外觀模式)。這有助於減少每個對象的依賴者,而過多的關聯對象通常意味著糟糕的代碼結構。如果「通用」模塊變得過於龐大,你需要將它按功能領域細分為多個子模塊。確保每個應用模塊只使用它需要的「通用」模塊,這即是SOLID中「介面隔離原則」的變種。在根範圍($rootScope)添加實體,這樣子範圍也可以使用,適合多個控制器都依賴同一個對象(比如「PermissionsModel」)的情況。在解耦兩個不明確互相引用的組件時,請使用事件。Angular中Scope對象的$emit、$broadcast以及$on方法使得這種方式變得現實。控制器能夠觸發一個事件來執行某些動作,然後再動作結束後收到相應地通知。
怎麼才可以修改網頁中的JS源碼文件
首先使用一個有調試工具的的瀏覽器
如:谷歌,火狐
然後按f12 調出網頁開發工具
以谷歌舉例
選擇sources標籤
點擊左上角小箭頭標誌
可以看到所有引用的js文件
如果你定位了你需要改的js
在控制檯面板中可以直接修改
此時會進入一個虛擬機狀態VIM
但是谷歌有sandbox機制
會屏蔽用戶對非本地源碼的修改
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245284.html