javascript小知識點有哪些-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“javascript小知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“javascript小知識點有哪些”吧!

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)泗洪,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
  1. 設(shè)置圖片時<image scr="" alt="" width="">單設(shè)置一個長或?qū)拕t剩下的邊長按比例自動設(shè)置。

  2. 鼠標(biāo)移至圖片上時變成小手給圖片添加樣式 cursor:pointer;

  3. 阻止表單提交<form action="javascript:;">

  4. 設(shè)置盒子權(quán)重時在樣式中寫 z-index:數(shù)字越大優(yōu)先級越高。

  5. id選擇器與類選擇器的區(qū)別:同一個頁面中一個標(biāo)簽只能對應(yīng)一個id但是可以選擇多個類,類也可以應(yīng)用在多個標(biāo)簽中。

  6. 給a標(biāo)簽的href="javascript:;" 其中javascript:是偽協(xié)議,它可以讓我們通過一個鏈接來調(diào)用javascript函數(shù).而采用這個方式 javascript:;可以實現(xiàn)A標(biāo)簽的點擊事件運行時,如果頁面內(nèi)容很多,有滾動條時,頁面不會亂跳,用戶體驗更好。相當(dāng)于執(zhí)行了一段javascript空代碼,地址不發(fā)生跳轉(zhuǎn)。與這個相同

  7. 去掉li前面的小點用list-style-type: none;

  8. 使li或span的外形變?yōu)閳A形用border-radius: 50%; 添加圓角邊框。

  9. textarea設(shè)置resize:none;可以防止用戶改變文本框大小。

  10. 想讓盒子根據(jù)里面內(nèi)容多少改變大小將盒子height改成auto。

  11. 使按鈕或者表單不可用this.disable=true;

  12. a&&b 如果a 為假 ,則返回 a ;如果a 為真 ,則返回 b 。

    i. a||b 如果 a 為假 ,則返回b ;如果 a 為真 ,則返回a 。

  13. img {vertical-align: top; } /取消圖片底部3像素距離/

  14. 一定要注意在javascript里修改style樣式時候賦值都要用“”以字符串形式賦值。

  15. javascript修改style中的數(shù)值后都可以到行內(nèi)數(shù)值樣式上看到。

  16. 使用webstorm新建javascript文件時候先把右下角的編碼格式改為utf-8否則后面運行會出錯。新建css文件也一樣。

  17. 如果在head里面引用javascript文件則需要考慮文件內(nèi)函數(shù)是否在window.onload里面否則會產(chǎn)生因為網(wǎng)頁未加載完造成javascript出錯。

  18. 表單中的input可以直接通過name屬性獲取到DOM對象,form.控件name

  19. 創(chuàng)建字符串時若里帶有標(biāo)簽的最好用單引號括起來避免和里面的雙引號沖突。

  20. JS 頁面跳轉(zhuǎn): window.location.href = ”http://www.itcast.cn”。

  21. 要獲取當(dāng)前頁面寬度用document.documentElement.clientWidth。

  22. 獲取當(dāng)前頁面相對滾動document.documentElement.scrollTop||document.body.scrollTop;

  23. input的type改為search時可以將回車當(dāng)確認(rèn)鍵。

  24. 獲取屏幕觸摸用addEventListener(“touchstart”,function(event){})在函數(shù)中用event.touches[0].clientY;來獲取鼠標(biāo)點擊的Y坐標(biāo)用touchmove來獲取觸摸離開時鼠標(biāo)最后所在的坐標(biāo)。

  25. 使用var img=new Image(width,height );效果和cratelement的效果相同。用img.src添加圖片。

  26. 字符串轉(zhuǎn)換成JSON對象用全局的JSON函數(shù) JSON.parse(string);

  27. 可以利用instanceof來判斷對象的構(gòu)造函數(shù)。

  28. 若函數(shù)中加return就不能當(dāng)做構(gòu)造函數(shù)來看,構(gòu)造函數(shù)return的是一個對象。

  29. 判斷數(shù)據(jù)類型時常用typeof和call,在使用 typeof 運算符時采用引用類型存儲值(NULL,數(shù)組,對象)會出現(xiàn)一個問題,無論引用的是什么類型的對象,它都返回 "object"。

  30. console.log(toString.call({})) //[object Object]

  31. console.log(toString.call([])) //[object Array]

  32. 用window.addListener(“hashchange”,function(e){})來監(jiān)聽地址欄中#后的哈希值變化,利用window.location來得到地址對象。

  33. 解析一個地址先創(chuàng)建一個a對象var aLink=document.creatElement(“a”)

  34. 再給a標(biāo)簽對象href賦值為地址字符串,之后既可通過aLink.hash得到地址哈希值

  35. 小技巧給一個數(shù)組不斷添加內(nèi)容可以arr[arr.length]=…;來給數(shù)組不斷賦值。

  36. 從數(shù)組中刪除元素也可以splice(元素索引,刪除元素數(shù)目)。

  37. for循環(huán)數(shù)組或?qū)ο髸r若用(index in arry)作為條件index表示當(dāng)前元素索引。

  38. 可以使用外部鏈接的標(biāo)簽img(支持跨域但無法獲取服務(wù)端數(shù)據(jù))、iframe(可以接受數(shù)據(jù)單操作復(fù)雜)、link(在CSS處理階段會報錯)、script(可以獲取服務(wù)器數(shù)據(jù),被選做jsonp傳送方式)。

  39. 為了使代碼易于維護(hù)采用開閉原則,對于后期會產(chǎn)生變化的量一定不能寫死,以后需要通過修改來迭代。

  40. 變化點封裝,一般都把今后會變化的地址類的寫在config函數(shù)里面,后面通過別名來使用。一定不要暴露在代碼中。

  41. 將一個對象利用“=”賦值給另一個對象時傳遞的是一個內(nèi)存對象,若修改其中一個的屬性則都會發(fā)生改動,想要避免源對象被篡改可以利用object.assign()方法或者object.creat()方法。

  42. js中函數(shù)對象是有長度的,它的長度是由參數(shù)的個數(shù)決定。(function (a, b, c, d) {}).length === 4。

  43. 想要正確處理上傳的文件,并接受到文件的內(nèi)容,需要把表單的enctype屬性設(shè)置為multipart/form-data,這是個適用于于BLOB(大型二進(jìn)制文件)的MIME類型。

  44. 想要將一個包含對象的數(shù)組以字符串的形式保存到文件中,需要循環(huán)遍歷數(shù)組并用JSON對象的.stringify方法將對象轉(zhuǎn)化為字符串形式,再進(jìn)行保存。

  45. 寫靜態(tài)網(wǎng)頁可以使用gulp+browersync(yo webapp生成模板),編寫動態(tài)網(wǎng)站用express+ejs+sass.

    Sass監(jiān)聽文件夾:sass --watch sassFileDirectory:cssFileDirectory;

    Sass監(jiān)聽單個文件:sass --watch style.scss:style.css;

  46. 函數(shù)的柯里化(Currying)是把接受多個參數(shù)的函數(shù)變換成接受一個單一參數(shù)(最初函數(shù)的第一個參數(shù))的函數(shù),并且返回接受余下的參數(shù)而且返回結(jié)果的新函數(shù)的技術(shù)。增加了函數(shù)的適用性,但同時也降低了函數(shù)的適用范圍。

  47. 惰性載入表示函數(shù)執(zhí)行的分支只會在函數(shù)第一次掉用的時候執(zhí)行,在第一次調(diào)用過程中,該函數(shù)會被覆蓋為另一個按照合適方式執(zhí)行的函數(shù),這樣任何對原函數(shù)的調(diào)用就不用再經(jīng)過執(zhí)行的分支了。如函數(shù)功能是對應(yīng)不同瀏覽器創(chuàng)建XMLHttpRquest當(dāng)?shù)谝淮螆?zhí)行時判斷完瀏覽器類型并創(chuàng)建完成后及可以返回一個被修改過后的本函數(shù),覆蓋原來的函數(shù),這樣以后調(diào)用此函數(shù)時就不需要再判斷瀏覽器類型,可以直接創(chuàng)建對應(yīng)XMLHttpRquest。

  48. 面向切面編程AOP主要實現(xiàn)的目的是針對業(yè)務(wù)處理過程中的切面進(jìn)行提取,它所面對的是處理過程中的某個步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。比如最常見的就是日志記錄了.

  49. String的search、match、replace參數(shù)都可以為正則表達(dá)式。

  50. 任何語言在浮點數(shù)運算時都會有誤差,浮點數(shù)運算的時候,先轉(zhuǎn)化為二進(jìn)制,用二進(jìn)制來算,結(jié)果再轉(zhuǎn)回十進(jìn)制,轉(zhuǎn)換的過程中會裝換成無限循環(huán)小數(shù),所以最后結(jié)果會有誤差。js中使用Number.prototype.toFixed()來設(shè)置保留小數(shù)的位數(shù),返回的是字符串??梢允褂胿alueOf()來再轉(zhuǎn)為number類型。

  51. 數(shù)組的歸約函數(shù)reduce(function(prev,cur,i){})會從左到右進(jìn)行迭代,每次返回的值作為下一次的prev參數(shù)。

  52. 在循環(huán)遍歷數(shù)組時若是想在找到結(jié)果后將結(jié)果在數(shù)組中剔除防止重復(fù),因為若是直接刪除會影響數(shù)組的循環(huán),解決辦法是將此值賦為NaN,這樣在數(shù)組中顯示時為null。使用delete刪除數(shù)值元素,刪除元素會產(chǎn)生空缺,不會更新length,空缺部分顯示undefined。如果沒按照數(shù)組順序給數(shù)組某一索引賦值,數(shù)組將不連續(xù),中間空缺部分會顯示undefined。forEach()會忽略undefined。使用splice()函數(shù)可以移除元素而不產(chǎn)生空缺。若修改數(shù)組的length為某個值,數(shù)組在此索引之外的部分都會被刪除。使用array.filter(function(v){return true;})可以濾出空缺函數(shù)。

  53. 使用閉包要注意,由于變量被保存在內(nèi)存中,所以會對內(nèi)存造成消耗,所以不能濫用閉包。解決方法是 在退出函數(shù)之前,將不使用的局部變量全部刪除。

  54. 使用array.filter(function(val){})可以遍歷數(shù)組里的所有內(nèi)容,return true的話數(shù)組會保留當(dāng)前內(nèi)容,false移除當(dāng)前內(nèi)容。

  55. 獲得所有傳入的參數(shù)放入一個數(shù)組args = Array.prototype.slice.call(arguments);

  56. 寫遞歸函數(shù)時要注意:無論是否滿足跳出遞歸的條件,下一步的執(zhí)行都要帶上return,即在調(diào)用自身時前面一定要帶上return,滿足跳出條件時才能一步一步跳出循環(huán)。

    var lefted,sliced = [];function chunkArrayInGroups(arr, size) {

面向?qū)ο?/p>

  1. 在構(gòu)造函數(shù)中創(chuàng)建共有屬性通過this.創(chuàng)建,私有屬性通過var 創(chuàng)建。

  2. 使用delete collection.tracks,可以刪除collection的tracks屬性。

  3. 數(shù)據(jù)屬性有4個描述的行為特性,通過Object.defineProperty(obj,propKey,propDesc)設(shè)置。

  • writable 表示能否修改屬性的值。默認(rèn)為false

  • Enumerable 表示能否過過for in循環(huán)返回屬性是否可以枚舉。默認(rèn)為false可以枚舉

  • configuralbe 表示是否能過來delete刪除屬性從來重新定義屬性,能否修改其配置。默認(rèn)為false。

  • value 包含這個屬性的數(shù)據(jù)值。讀取屬性值的時候,從這個位置讀取。

  • 使用Object.keys(obj)可以得到obj對象的所有自有(非繼承)可枚舉的屬性鍵,屬性通常都是可枚舉的,Object.getOwnPropertyNames(obj)返回obj對象的所有屬性鍵。

  • 枚舉的一般規(guī)則是,系統(tǒng)創(chuàng)建的屬性不可枚舉,用戶創(chuàng)建的屬性可枚舉。枚舉的主要目的是判斷for-in循環(huán)中的哪些屬性該忽略。對于自己的代碼,通??珊雎悦杜e屬性,且應(yīng)該避免用for-in循環(huán),屬性的枚舉特性默認(rèn)為可枚舉。

  • 保護(hù)對象的三種方式:

    • 防止擴(kuò)展:Object.preventExtensions(obj);設(shè)置對象不能添加屬性。

    • 封閉:Object.seal(obj);可以改變屬性的值,但屬性的特性不能被改變。

    • 凍結(jié):Object.freeze(obj)使所有的屬性不可寫,且封閉obj不能擴(kuò)展。

  • A instanceof B運算符可以用來判斷B構(gòu)造函數(shù)的prototype屬性是否存在A對象的原型鏈上。等價于B.prototype.isPrototypeOf(A);

  • 設(shè)置原型的另一種方法Object.creat(proto,propDescObj?);

  • 獲取原型的另一種方法Object.getPropertypeOf(obj);

  • 實現(xiàn)模塊化編程

    • // 計算模塊calc_v2015.js

到此,相信大家對“javascript小知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文標(biāo)題:javascript小知識點有哪些-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article28/pohcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)網(wǎng)站導(dǎo)航、網(wǎng)站策劃、靜態(tài)網(wǎng)站、服務(wù)器托管、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名