《JavaScript模式》讀書筆記一:基本技巧

《JavaScript模式》的讀書筆記,個人向!
更新進度隨我的閱讀進度

基本技巧

盡量少用全局變量

  1. 防止變量污染
  2. 注意JS變量提升問題
  3. 盡量使用單一var模式,只使用一個var在函數頂部進行變量聲明
function fun () {var a =1,b=2,sum = a+b,函數體//}

for循環優化

  1. 循環條件優化
for(var i=0; i<myarry.length; i++){//對array[i]進行操作
}

上面那種循環,將marry.length作為循環條件,每次循環時都要訪問數據的長度,會使代碼變慢,尤其是當條件為HTML容器對象時,每次循環都回去訪問DOM,而DOM查詢操作是非常慢的,優化方法就是將已循環過的條件緩存起來

//這種方式,對長度只提取一次
for(var i=0, max=myarry.length; i<max; i++){//對array[i]進行操作
}//也可以結合剛才的單一var 模式
var myarry=[],max=myarry.length,i=0for(i; i<max; i++){}

2、用i++替代 i=i+1, i+=1
這樣替代的好處是1、使用了最少的變量 2、逐步減至0因為跟0比較比跟數組長度比較更有效率
優化代碼

var myarr=[],i=myarr.lengthwhile(i--){//操作}

for-in循環

  1. 推薦使用,for循環來遍歷數組,用for-in循環來遍歷對象
  2. hasOwnProperty()過濾原型鏈屬性
var man = {hands:2,legs:2,head:1
},
i=0
Object.prototype.clone='zhang'for(i in man){if(man.hasOwnProperty(i)){console.log(i,":",man[i]);}
}
//這樣子就在循環的時候過濾掉了繼承屬性了

hasOwnProperty(),并不常用,當確認不了對象的內容時可以用上它進行安全檢查

switch模式

switch(n)
{
case 1:執行代碼塊 1break;
case 2:執行代碼塊 2break;
default:result = "unknow"
}
  • 保持縮進整齊
  • 每個case語句結尾有一個break語句
  • 用default作為switch的結尾,當所有case不匹配時給出一個默認結尾

不要增加內置的原型

盡量不要對內置構造函數(Object(),Array()等)增加原型

避免使用隱式類型轉換

JS中在使用比較語句時會進行隱式類型轉換,別如‘false==0’會返回true
在使用比較語句的時候使用'==='和'!==='來進行比較

parseInt()

parseInt()第二個參數是進制參數,通常可以省略,但最好不要省略,因為該函數在解析0開頭的字符串的時候會按8進制來解析

var year="09";
year=parseInt(year,10) // return 9
// parseInt(year)返回值是0//如果是純數字字符串,可以用下面兩種方法轉換
+'08' //結果是8
Number('08') //結果是8
// 如果不是純數字字符串,只能用paeseInt()來解析,其它方法都將反回NAN

用注釋生成API文檔

JS有兩個開源的工具來用注釋生成API文檔,分別是JSDoc Toolkit和YUIDoc
根據這兩工具所規定的格式來寫注釋代碼,就能夠生成API文檔

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

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

相關文章

Python字符串處理全攻略(四):常用內置方法輕松掌握

文章目錄 引言Python字符串常用內置方法切片功能介紹語法示例注意事項 str.isalpha()功能介紹語法示例注意事項 str.isdigit()功能介紹語法示例注意事項總結 str.isalnum()功能介紹語法示例注意事項總結 str.isupper()功能介紹語法示例注意事項 islower()功能介紹語法示例注意事…

php空間限制磁盤限額,ORA-01536:超出表空間XXXX的空間限額

問題描述&#xff1a;在FMIS2600用戶下進行某個DDL或DML操作時&#xff0c;提示&#xff1a;ORA-01536&#xff1a;超出表空間FMIS2600 的空間限額 或者 ORA-01950: 對表空間/*******************ORA-01536&#xff1a;超出表空間XXXX的空間限額*******************//*********…

01爬蟲基本原理及Requests庫下載

一、爬蟲基本原理 1.什么是爬蟲 ? 爬蟲就是爬取數據 2.什么是互聯網&#xff1f; ? 就是由一堆網絡設備&#xff0c;把一臺臺的電腦互聯在一起 3.互聯網建立的目的 ? 數據的傳遞和數據共享 4.什么是數據&#xff1f; ? 例如&#xff1a; ? 電商平臺的商業信息&#xff08;…

php 怎么實現收藏功能,php收藏功能如何實現

php收藏功能如何實現php收藏功能的實現方法&#xff1a;首先創建好數據庫表 &#xff1b;然后創建前臺代碼&#xff0c;實現登錄界面&#xff1b;接著通過html實現收藏樣式&#xff1b;最后使用php進行后臺處理即可。推薦&#xff1a;《PHP視頻教程》這是數據庫表話不多說上代碼…

quartus FIR仿真筆記

第一章&#xff1a; 最近百度了一些fir濾波器的資料&#xff0c;都沒有自己想要的。容我吐槽一大段文字> 在舊版的quartus中&#xff0c;比如13.0&#xff0c;有兩個fir濾波器的選項&#xff0c;如下所示&#xff1a; 網上很多都是講不帶II的那個&#xff0c;而在新版的quar…

關于時鐘

/** * 時間獲取 * * param mGITime 控件 * param context 承接上下文 */public void endTime(GeneralInput mGITime, Context context) { TimePickerDialog tp new TimePickerDialog(context, (view12, hourOfDay, minute) -> { StringBuilder sb new StringBui…

LVS + Keepalived 雙機熱備+DR模式

簡介 Keepalived 起初是專門針對 LVS 設計的一款強大的輔助工具&#xff0c;主要用來提供故障切換和健康檢查&#xff08; Health Checking &#xff09;功能——判斷 LVS 負載調度器、節點服務器的可用性&#xff0c;及時隔離并替換為新的服務器&#xff0c;當故障主機恢復后就…

php程序layer,php 提交表單 關閉layer彈窗iframe的實例講解

介紹一款非常好用的前端彈窗插件&#xff1a;根據官方的API&#xff1a;layer的iframe彈窗//iframe層-父子操作layer.open({type: 2,area: [700px, 530px],fix: false, //不固定maxmin: true,content: test/iframe.html});這里以php開發為例 演示如何 提交表單后自動關閉layer彈…

Django之 RESTful規范

RESTful 規范 一、什么是RESTful REST與技術無關&#xff0c;代表的是一種軟件架構風格&#xff0c;REST是Representational State Transfer的簡稱&#xff0c;中文翻譯為“表征狀態轉移”REST從資源的角度類審視整個網絡&#xff0c;它將分布在網絡中某個節點的資源通過URL進行…

php編譯 ftp,無需重新編譯php加入ftp擴展的解決方法

首先&#xff0c;進入源碼目錄cd php-5.2.13/ext/ftp#運行phpize生成configure/usr/local/php/bin/phpize#編譯,指定php-config,注意這里的php-config,不是php.ini./configure --with-php-config/usr/local/php/bin/php-config#上面可以添加--enable-ftp,也可以不用添加#編譯安…

git常用命令及分支簡介

2019獨角獸企業重金招聘Python工程師標準>>> 1、git基本命令 1&#xff09;git add 將想要快照的內容寫入緩存區 2&#xff09;git status -s "AM" 狀態的意思是&#xff0c;這個文件在我們將它添加到緩存之后又有改動 3&#xff09;git commit -m 第一次…

企業私有云部署im,視頻服務

1&#xff0c;安全問題 2&#xff0c;員工跨地域 3&#xff0c;內部視頻培訓 考勤申請&#xff0c;設備借用申請 名片申請 會議室預訂 審批 內網&#xff0c;局域網部署 Android源碼 https://github.com/starrtc/android-demo ios源碼https://github.com/starrtc/ios-demo

php html 偽靜態,php 偽靜態(url重寫)的寫法

來看下面這個網頁 url&#xff1a;http://www.jbxue.com/test.php/1,100,8630.html其實處理的腳本是test.php 參數為1,100,8630相當于test.php?a1&b1100&c8630 只不過這樣的URL太難記。搜索引擎也不喜歡。真靜態只是完全生成了HTML。客戶端訪問的時候直接輸出。不用腳…

客服工作臺

public Page<Record> customerDeskList(QhyfController controller) throws Exception {//獲取分頁信息PageInfo pageInfo controller.getPageInfo();int pageNumber pageInfo.getPageIndex();int pageSize pageInfo.getPageSize();List<String> paras new Arr…

Leetcode怎么調試java代碼,在Clion上調試LeetCode代碼

在Clion上調試LeetCode代碼在leetcode上做題調試起來總有些不方便&#xff0c;所以查閱了一些資料后&#xff0c;按以下配置&#xff0c;自我感覺效率還行&#xff0c;分享給大家。祝大家刷題愉快。并附上自己整理的leetcode400題題表。Leetcode400題&#xff1a;notion地址依賴…

來入門一下kotlin吧

Kotlin是什么&#xff1f; Kotlin是一種在java虛擬機上運行的靜態類型的編程語言&#xff0c;被稱之為 Android 世界的Swift&#xff0c;由 JetBrains 設計開發并開源。 Kotlin的優勢&#xff01; Kotlin可以編譯成java字節碼&#xff0c;也可以編譯成JavaScript。方便在沒有ja…

apache2 配置php,Windows配置PHP5與Apache2

windows下安裝和配置PHP5與Apache2真是比linux下難多了&#xff0c;唉。這里用的是PHP Version 5.2.1和Apache HTTP Server 2.2.4&#xff0c;都是從官方網站下的。1. 下載安裝&#xff0c;不多說了&#xff0c;apache一路按下去就ok&#xff0c;php連按都不用&#xff0c;解壓…

ReactNative 觸摸事件處理

ReactNative觸摸事件處理 對RN觸摸事件的捕獲與冒泡機制的理解 組件A、B、C結構 組件A組件B組件C 捕獲、冒泡機制 sequenceDiagram A->>A: 是否捕獲&#xff1f;若是則停止向下一級傳遞 A->>B: B->>B: 是否捕獲&#xff1f;若是則停止向下一級傳遞 B->&g…

CISCO網絡故障排錯命令總結分享

一、故障處理命令 1、show命令&#xff1a; 1&#xff09; 全局命令&#xff1a; show version &#xff1b;顯示系統硬件和軟件版本、DRAM、Flash show startup-config &#xff1b;顯示寫入NVRAM中的配置內容 show running-config &#xff1b;顯示當前運行的配置內容 show b…

java input回車,用java怎樣編寫加減乘除,從鍵盤輸入,例如:1+2按回車得到

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓import org.junit.Test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestCalc {Testpublic void testCalculator() {String input "11";//輸入String rule "(\\d\\.?\\d*)([\\…