ES5程序設計轉ES6 筆記

課程鏈接

1. 立即執行函數

  • 特點:執行結束,立即銷毀;獨立作用域
  • 執行符號()只能跟在表達式后面,不能放在函數聲明后
  • 分號可以寫在前面/后面
  • document為傳入實參,doc為形參
;(function(doc){...const init = ()=>{bindEvent()}function bindEvent(){obj.addEventListener('click', onClick, false)}init()
})(document)

2. init函數

  • 模塊初始化函數init管理模塊執行
  • 用函數專門去綁定事件處理函數
  • 在init中執行綁定事件處理函數
  • 讓功能性的東西能復用

3. webpack 自動化解決方案

3.1 npm init后生成package.json文件

{"name": "calculator-webpack","version": "1.0.0","description": "webpack study","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"repository": {"type": "git","url": "https://gitee.com/ying9481/calculator-webpack.git"},"keywords": ["webpack"],"author": "hyy","license": "MIT"
}

3.2 開發環境安裝包

$ cnpm i -D webpack webpack-cli webpack-dev-server 
babel-loader@7 babel-core babel-preset-env 
babel-plugin-transform-runtime babel-plugin-transform-decorators 
babel-plugin-transform-decorators-legacy sass-loader node-sass 
css-loader style-loader ejs-loader html-webpack-plugin

3.3 path模塊

path.resolve的每個參數,從左至右看成cd操作理解

3.4 use的執行順序

從下到上、從右到左 → 先經過css-loader,再到style-loader

1、作用①:壓縮代碼,混淆js代碼;
2、作用②:瀏覽器不支持ES5以上的語法,webpack可以安裝一系列依賴包將之翻譯成ES5
3、作用③:將less、sass編譯成css
4、所需依賴:

  1. 【三大件】webpack、webpack-cli(腳手架)、webpack-dev-server(開發者服務器插件)
  2. 【六件套】處理ES6 ES7… 裝飾器:
    . babel-loader@7、babel-core、babel-preset-env (babel8版本和babel-core不兼容)
    . babel-plugin-transform-runtime
    . babel-plugin-transform-decorators、 babel-plugin-transform-decorators-legacy
  3. 【四大件】處理樣式sass:
    . sass-loader、node-sass、css-loader、style-loader ( postcss-loader autoprefixer )
  4. 處理模板:ejs-loader
  5. 處理HTML: html-webpack-plugin

5、安裝指令:

  • –save-dev 簡寫 -D (安裝在開發環境下的,線上不跑)
  • –save 簡寫 -S (安裝在生成環境下的,線上代碼也需要的,如ejs)

6、配置安裝包 webpack.config文件
特*:所有plugin結尾的依賴,一般要require導入、loader則不用
plugins: [ new HtmlWebpackPlugin( { } ) ]
7、 用命令跑配置文件webpack.config,在package.json的script里(跑腳本)
8、webpack的path模塊 解決絕對路徑
9、webpack上線時,mode變為production
10、export{ }用到了結構賦值

4.

  • addEventListener
  • 立即執行函數
  • 綁定屬性,getAttribute
  • 裝飾器
  • 組件化(類的形式)
  • proxy

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251249.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251249.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DPDK helloworld 源碼閱讀

在 DPDK Programmers Guides 中的 EAL 一篇中有一個圖可以很清晰地看到一個DPDK的應用程序的大致執行思路: 初始化檢查CPU支持、微架構配置等完成后,執行main()函數。 第一步是 rte_eal_init(),核心初始化和啟動。其中線程使用的是pthread庫&…

javascript --- 作用域和閉包

執行環境: // 定義了變量或函數有權訪問的其他數據,決定了它們各自的行為 // 每個執行環境都有一個變量對象與之對應,執行環境中所定義的所有變量和函數都保存在變量對象中 // 某個執行環境中的所有代碼執行完畢后,該執行環境被銷毀,保存在其中的所有變量和函數定義也隨之銷毀…

異步下載圓形進度條顯示進度

圓形進度條參考鏈接即可:使用css3實現圓形進度條 需求點擊下載后遮罩層顯示下載進度: 1.圓形進度條參考以上鏈接,有點小瑕疵,可更改定位距離實現重合。 2.遮罩層: .lbOverlay{display: none;position: fixed;left: 0;…

javascript基本功

隱式類型轉換 var a {_default: 0,toString: function () {return a._default} } if (a 1 && a 2 && a 3) {console.log(解) } 訪問一個變量的時候進行攔截 var _default 0 Object.defineProperty(window, a, {get() {return _default} }) if (a 1 &am…

深信服筆試,抓兔子

*問題描述:抓兔子n個排成一排的洞,編號為1到n,兔子每天晚上會跳到相鄰的一個洞里,小q每天只能白天檢查其中的一個洞,小q會告訴你每天檢查的洞,分析是否一定能抓到兔子示例:3個洞,第一…

es6 --- 模塊

function foo(){var something cool;var another [1, 2, 3];function doSomething() {console.log( something );}function doAnother() {console.log( another.join( " ! " ) );} } // 是一個不明顯的閉包,doSomething()和doAnother()保持了foo的內部作用域接下來…

Java之遞歸遍歷目錄,修改指定文件的指定內容

EditProperties.java 1 package PropertiesOperation.Edit;2 3 import java.io.File;4 5 /**6 * 替換指定Porpoerties文件中的指定內容7 * 三個參數:8 * filePath:存放properties文件的目錄9 * srcStr:需要替換的字符串 10 * desStr&…

學習日志---7

1.復習Linux hadoop hdfs MapReduce基礎知識 1,列舉linux常用命令 shutdown now reboot mkdir mkdir -p touch filename rm -r filename rm -rf filename vi filename i--->可編輯狀態 esc --> : --->wq 保存退出 q! wq! cat grep find ifconfig ping user…

javascript --- 屬性描述符

從ES5開始,所有的屬性都具備了屬性描述符 var myObject {a: 2 };Object.getOwnPropertyDescriptor(myObject, "a"); //{ // value:2, // writable: true, // 可寫 // enumerable: true, // 可枚舉 // configurble: true // 可配置 //}定義屬性…

看了嗎網址鏈接

sklearn實戰-乳腺癌細胞數據挖掘(博主親自錄制視頻) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare # -*- coding: utf-8 -*- ""&qu…

JMeter 性能測試進階實戰

課程簡介 本課程制作的主要目的是為了讓大家快速上手 JMeter,期間穿插了大量主流項目中用到的技術,以及結合當今主流微服務技術提供了測試 Dubbo 接口、Java 工程技術具體實施方案,注重實踐、注意引導測試思維、拒絕枯燥的知識點羅列、善于用…

javascript --- 混入

顯示混入: function mixin(sourceObj, targetObj){for(var key in sourceObj){ // 遍歷source中的所有屬性if(!(key in targetObj)) { // 找到targetz中沒有的屬性targetObj[key] sourceObj[key];}}return targetObj; }var Vehicle {engines: 1,iginition: function() {c…

php源碼代目錄

ext :存放動態和內建模塊的目錄,在這里可以找到所有的php官方虧站,并且也可以在這里編寫擴展; main:包含php的主要宏定義; pear: PHP擴展與應用庫; sapi:包含不同服務器抽象層的代碼; TSRM:Zend和PHP的"線程安全資源管理器"目錄; Z…

bzoj1231 [Usaco2008 Nov]mixup2 混亂的奶牛——狀壓DP

題目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1231 小型狀壓DP&#xff1b; f[i][j] 表示狀態為 j &#xff0c;最后一個奶牛是 i 的方案數&#xff1b; 所以下一個只能是和它相差大于 k 而且不在狀態中的奶牛。 代碼如下&#xff1a; #include<iostr…

JavaScript高級程序設計閱讀筆記

2020-11-15 通過初始化指定變量類型 數字-1 對象null和null的比較&#xff08;不理解&#xff09;使用局部變量將屬性查找替換為值查找&#xff08;算法復雜度&#xff09;循環的減值迭代&#xff0c;降低了計算終止條件的復雜度switch快多個變量聲明逗號隔開使用數組和對象字面…

jquery --- 監聽input框失效

使用juery監聽Input輸入的變化,并且封裝起來,如下: // html <input type"text" id‘myinput1’ /> // js function formOnById(id){let dom # id;$(dom).bind(input propertychange,()>{let item $(dom).val;console.log(item);} } formOnById(myinp…

windows任務計劃程序 坑

轉載于:https://www.cnblogs.com/kaibindirver/p/8109041.html

第三篇:函數之嵌套

1 #函數的嵌套調用&#xff1a;在調用一個函數的時&#xff0c;其內部的代碼又調用其他的函數2 # def bar():3 # print(from bar)4 #5 # def foo():6 # print(from foo)7 # bar()8 #9 # foo() 10 11 12 # def max2(x,y): 13 # if x > y: 14 # ret…

vue路由權限(結合服務端koa2)

gitee地址 一、項目初始化 vue create manager-admin // 創建vue項目// 管理員權限安裝 cnpm i -S koa2 // 下載koa2依賴 cnpm install --global koa-generator // 下載框架 koa-generator koa2 manager-server // 創建項目 cd manager-server // 進入項目 npm install // 安…

javascript --- 類、class、事件委托的編程風格

類風格: // 父類 function Widget(width, height) {this.width width || 50;this.height height || 50;this.$elem null; } Widget.prototype.render function($where) {if(this.$elem) {this.$elem.css({width: this.width "px",height: this.height "p…