成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript寫庫前的準備工作

開發 開發工具
雖然我覺得這個鄙視鏈很幼稚,但是不能不說很多人拿自己寫庫作為一個技能區分標準,不管怎樣寫庫都是一個提升技能的好辦法,然而并不難。

 能夠獨立的書寫一個庫,是很多開發者或者HR認為區分技能的一個標志,而且還存在一個鄙視鏈:

切圖的<用JS<從網上趴代碼<自己寫簡單js<自己寫組件<自己數據交互<自己寫庫給別人用<寫nodejs等后臺js<自己寫后臺組件和數據庫交互的,

雖然我覺得這個鄙視鏈很幼稚,但是不能不說很多人拿自己寫庫作為一個技能區分標準,不管怎樣寫庫都是一個提升技能的好辦法,然而并不難。

好,我們看看寫庫之前需要什么準備知識。

1.嚴格模式

很多庫一開始就是這樣子的,

  1. (function(global){ 
  2.     //嚴格模式 
  3.     'use strict' 
  4. })(window); 

不墨跡直接說嚴格模式的好處,

1.更利于調試,當不定義變量直接用的時候如果不適用嚴格模式不會報錯,而是結果不對。這個很難調試,因為大部分時間這種錯誤是你單詞拼寫錯誤,不報錯。

2.防止出現低級錯誤,除了上面的問題,還有比如if里面定義函數造成問題的情況

3.修復了很多不利的bug和擅長無用功能,比如with。

聽不懂我上面那三條也沒事記住一個字就夠了,以后必須用!

2.初始化。

 舉個例子寫一個jquery的css方法,簡單點兒,只實現設置寬高顏色。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>大彬哥版權所有翻錄必究</title> 
  6.     <meta name="author" content="尼古拉斯·屌·大彬哥-QQ群:552079864"
  7.     <meta name="copyright" content="尼古拉斯·屌·大彬哥"
  8.     <meta name="viewport" 
  9.           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
  10.     <meta http-equiv="X-UA-Compatible" content="ie=edge"
  11.     <style> 
  12.  
  13.     </style> 
  14.     <script> 
  15.         function css(obj,width,height,color){ 
  16.  
  17.             obj.style['width'] = width+'px'
  18.             obj.style['height'] = height+'px';; 
  19.             obj.style['background'] = color; 
  20.         } 
  21.         document.addEventListener('DOMContentLoaded',function(){ 
  22.             var oDiv = document.querySelector('#div1'); 
  23.             css(oDiv,200,100,'red'); 
  24.         },false); 
  25.     </script> 
  26.  
  27. </head> 
  28. <body> 
  29.     <div id="div1"></div> 
  30. </body> 
  31. </html> 

這樣寫至少有兩問題,

1.參數多了我記不住順序,就死翹翹了。

2.參數多了我忘寫兩個,就死翹翹了。

怎么解決用json的無序和增加默認值。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>大彬哥版權所有翻錄必究</title> 
  6.     <meta name="author" content="尼古拉斯·屌·大彬哥-QQ群:552079864"
  7.     <meta name="copyright" content="尼古拉斯·屌·大彬哥"
  8.     <meta name="viewport" 
  9.           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
  10.     <meta http-equiv="X-UA-Compatible" content="ie=edge"
  11.     <style> 
  12.  
  13.     </style> 
  14.     <script> 
  15.         function css(obj,json){ 
  16.             json.width = json.width||100; 
  17.             json.height = json.height||100; 
  18.             json.background =  json.background||'#cccccc';    
  19.             obj.style['width'] = json.width+'px'
  20.             obj.style['height'] = json.height+'px';; 
  21.             obj.style['background'] = json.background; 
  22.         } 
  23.         document.addEventListener('DOMContentLoaded',function(){ 
  24.             var oDiv = document.querySelector('#div1'); 
  25. //            css(oDiv,{width:200,height:50,background:'red'}); 
  26.             css(oDiv,{background:'red'}); 
  27.         },false); 
  28.     </script> 
  29. </head> 
  30. <body> 
  31.     <div id="div1"></div> 
  32. </body> 
  33. </html> 

簡單吧。

3.數據類型判斷

我們有時候經常要判斷用戶輸入的數據類型。上代碼,重點是對象和數組的判斷。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>大彬哥版權所有翻錄必究</title> 
  6.     <meta name="author" content="尼古拉斯·屌·大彬哥-QQ群:552079864"
  7.     <meta name="copyright" content="尼古拉斯·屌·大彬哥"
  8.     <meta name="viewport" 
  9.           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
  10.     <meta http-equiv="X-UA-Compatible" content="ie=edge"
  11.     <style> 
  12.  
  13.     </style> 
  14.     <script> 
  15.         //usbnofunc 
  16.         // undefine string boolean number  
  17.         //這幾個直接用typeof 不考慮new Number這些情況,神經病才這么用,這里不墨跡 
  18.        // alert(typeof 'abc' === 'string'); 
  19.         //看看null,不要以為null類型是object 這孫子是一個bug 
  20. //        alert(typeof null === 'object'); 
  21.         // 判斷數組 
  22.         var arr = [1,3]; 
  23.         function isArray(value){ 
  24.             if (typeof Array.isArray === "function") { 
  25.                 return Array.isArray(value); 
  26.             }else
  27.                 return Object.prototype.toString.call(value) === "[object Array]"
  28.             } 
  29.         } 
  30.         alert(isArrayFn(arr));// true   
  31.          
  32.     </script> 
  33. </head> 
  34. <body> 
  35.     <div id="div1"></div> 
  36. </body> 
  37. </html> 

知道你可能不了解數組的判斷方式,但是我想告訴你,兩件事:

1.看別人的庫很有必要,因為你寫的不周全,人家已經很周全拿過去用就行了,前提是你知道原理。

2.不是每一個東西都會用到,不要為了學一個東西而去學,你一定是解決實際問題,比如很多人不會用call,bind,apply。其實是因為他們不知道用在哪,學以致用。

看別人庫是最快的學習方法,推薦兩個庫,一個是loadash,一個是underscore.

【本文為51CTO專欄作者“面包理想學院”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2022-01-06 10:48:16

硬盤操作系統數據

2013-02-27 10:35:03

RHEV 3.1

2013-05-16 15:04:55

系統升級

2009-03-01 22:27:21

2010-11-01 16:19:59

大型UPS電源準備工作

2011-03-25 10:25:19

2023-04-27 08:04:19

2010-05-19 13:45:41

IIS組件

2011-06-30 15:45:55

SEO

2017-03-09 19:19:18

重構應用開發架構

2011-07-06 11:10:30

iOS iphone XCode

2009-09-01 10:59:22

C#項目

2011-03-22 10:10:16

CentOSNagios安裝

2011-08-01 14:08:17

admt活動目錄遷移

2009-07-23 12:22:41

ASP.NET MVC

2017-09-20 16:07:31

Facebook

2011-09-01 10:20:56

2010-02-26 15:46:31

MID Linux

2016-01-15 10:28:43

PaaS運維運維服務

2011-03-30 11:31:10

MRTG
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www一级片 | 7799精品视频天天看 | 色婷婷影院 | 一区福利视频 | 日韩综合在线播放 | 少妇特黄a一区二区三区88av | 日韩av高清 | 国产精品色一区二区三区 | 色就是色欧美 | 久久男人 | 区一区二区三在线观看 | 99精品一区二区 | 国产乱人伦 | 国产日韩欧美电影 | 一级毛片大全免费播放 | 天天天操操操 | 999热精品 | 中文字幕第一页在线 | 免费黄色的视频 | 午夜男人的天堂 | 日韩国产欧美在线观看 | 亚洲第一网站 | 久久婷婷香蕉热狠狠综合 | 久久久久久成人 | 国产精品美女一区二区三区 | 日本在线观看视频 | 夜夜草导航 | 精品一区二区三区在线视频 | 亚洲免费视频一区 | 亚洲精品欧美 | 日韩一区二区三区av | 国产 欧美 日韩 一区 | 中文字幕第7页 | 伊人久久综合 | 午夜影院视频在线观看 | 国产在线不卡 | 97av视频在线观看 | 91亚洲精品久久久电影 | 国产一区二区三区视频免费观看 | 91av视频| 精品三区 |