首頁 web前端 html教學 原生js的常用方法整理

原生js的常用方法整理

Nov 27, 2017 pm 03:21 PM
javascript 整理 方法

隨著前端市場日新月異的發展,現在的市場需要人才掌握的技能越多越多,今天就給大家總結一些原生js閉包,繼承,原型鏈,node,希望能對你的前端道路上有幫助

以下是個人總結,也有一些是copy大神的,現在放到一起,方便以後查閱(有不對的地方,還望大家能夠提出,我會盡快加以改正)。

一、!!強制轉布林值boolean
根據目前需要判斷的值是真值還是假值來判斷,真值回傳true,義肢回傳false,那麼這樣的話,除了假值,剩下的也都是真值了。

假值有:         0  、  「」  、   null  、 undefined  、  false  、NaN、

#除了這6 個外,其它皆為「真實物件」,其物件都是正規、函數等。
注意: '0'、'null'、'false'、{}、[]也都是真值  。
那麼下面我們來看看!!是如何轉布林值的。
例如:
首先我們宣告3個變數,x為null,y為空字串,str為字串,下面看看他們加入了"!!"後會有什麼結果。

var x=null; var y=""; var str="abcd"; console.log(!!x)      // false; console.log(!!y)      // false; console. log(!!str)    // true;

如上所說,假值回傳false,真值回傳true。

二、在str前加上一個➕號,+str會強制轉Number
將字串前加+,可以強制轉number,下面我們就一起來試試看吧!

var str="88"; console.log(+str)   // 88 //但是如果是混合型別的字串,則會轉為NaN var b="1606e"; console.log( +b)     // NaN

三、不可靠的undefined 可靠的void 0
JavaScript中,假設我們想判斷一個是否是undefined,那麼我們通常會這樣寫:

if(a === undefined){   dosomething..... }

因為在javascript中,undefined是不可靠的
例如:
當undefined被放在在function函數內,我們把它當成局部變量,它是可以賦上值的,下面我們來試試。

function foo2(){     var undefined=1;     console.log(undefined) } foo2();     // 1;

但是當在函數內定義一個全域變量,並不能為void 0或void (0)來代替:

先宣告一個變數a,賦值為undefined,接下來我們用void 0來判斷。


var a=undefined; //用void 0來判斷if(a===void 0){     console.log('true') }       // true //再用void (0)來判斷if(a===void (0)){     console.log('true') }       // true //最後我們印出這兩個的回傳值console.log(void 0,void (0)) // undefined undefined


我們現在可以透過void 0 運算來獲得undefined;那在以後需要判斷值為undefined的時候,可以直接用void 0或void (0),而且這兩個值的直接回傳值就是undefined,所以說非常可靠喔!

四、字串也是有length屬性的!
我們知道所有的Array都是有length屬性的,就算是空數組,那麼length 為0,那麼字串有沒有呢?接下來我們來驗證一下。

var str="sdfsd5565s6dfsd65sd6+d5fd5"; console.log(str.length)      // 26


#結果是有的,所以我們在判斷型別時,不能單純拿有沒有length屬性來判斷是不是數組了,我們可以用下面的方法來判斷是否是數組:

var obj=[1,2] ; console.log(toString.call(obj) == = '[object Array]');

五、如何建立一個隨機數組,或是將現有的陣列打亂?

在專案中有時候我們需要一個隨機打亂的數組,那麼下面我們來實作以下:

先來建立一個陣列:

var arr=[]; for(var i= 0;i<10;i++){     arr.push(i) } console.log(arr)    // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



接下來我們要來打亂它:

arr.sort(()=>{     return Math.random() - 0.5 })                 // [1, 0, 2, 3, 4        // [1, 0, 2, 3, 2, 2, 3)中, 6, 8, 5, 7, 9]

第二種打亂方法:

arr.sort((a,b)=>{     return a>Math .random()*10; })                // [1, 2, 0, 6, 4, 3, 8, 9, 7, 5]

#我們先前的正常排序是這樣的:

arr.sort(function(a,b){     return b-a });

#

解析:
先說正常的排序:
a,b表示數組中的任兩個元素,若return > 0 ,b前a後;若reutrn < 0 則a前b後;當a=b時,則存在瀏覽器相容;
a-b輸出從小到大排序,b-a輸出從大到小排序。
接著再說我們打亂的方法:
建立陣列不用說,接下來就是用js的sort方法來實現,Math.random()實作一個隨機0-1之間的小數然後再減去0.5 ,這時就會依照return比較後得到的值排序,所以說就會產生不是正常從大到小或從小到大的排序。

第二個打亂的方法同樣是遵循sort的方法,將a,b傳進去 然後和隨機數做比較,關於比較的方法不太清楚。

六、去除前後、前、後 所有空格
這是專門為去除空格寫的一套方法,適用於各種情況,所有空格,前後空格,前空格,後空格。

var strr="    1 ad dertasdf sdfASDFDF DFG SDFG    "     //  type 1-所有空格,2-前后空格,3-前空格,4-后空格function trim(str,type){     switch (type){         case 1:return str.replace(/\s+/g,"");         case 2:return str.replace(/(^\s*)|(\s*$)/g, "");         case 3:return str.replace(/(^\s*)/g, "");         case 4:return str.replace(/(\s*$)/g, "");         default:return str;     } } console.log( trim(strr,1))      //  "1addertasdfsdfASDFDFDFGSDFG"
登入後複製

解析:
 這個方法用的是正則的匹配格式,後面我會把正則單獨拿出來總結一個系列,敬請期待! ! !

 \s : 空格符,Tab,換頁符,換行符  \S : 非\s的所有內容  /g :  全域匹配  ^  :  配對在行首  $  : 匹配在行  ^  :  匹配在行首  $  : 匹配在行  + : 重複次數>0   *  : 重複次數>=0   |  :  或

replace(a,b): 方法用於在字元創中用一些字元替換另一些字元, 會傳入兩個值,將逗號前面的值a替換成逗號後面的值b。

七、字母大小寫切換(正規匹配,replace)
這個方法主要是給一些需要大小寫轉換提供的方法,主要有首字母大寫,首字母小寫,大小寫轉換,全部轉大寫和全部轉小寫。

type:   1:首字母大寫2:首頁母小寫3:大小寫轉換4:全部大寫5:全部小寫

原始字串:

var str="sdfwwerasfddffddeerAasdgFegqer"; function changeCase(str,type) {    //这个函数是第三个大小写转换的方法     function ToggleCase(str) {         var itemText = ""         str.split("").forEach(                 function (item) {                  // 判断循环字符串中每个字符是否以a-z之间开头的并且重复大于0次                     if (/^([a-z]+)/.test(item)) {                     //  如果是小写,转换成大写                         itemText += item.toUpperCase();                     }                 //  判断循环字符串中每个字符是否以A-Z之间开头的并且重复大于0次                     else if (/^([A-Z]+)/.test(item)) {                    //   如果是大写,转换成小写                         itemText += item.toLowerCase();                     }                     else{                   //  如果都不符合,返回其本身                         itemText += item;                     }                 });         return itemText;     }   //下面主要根据传入的type值来匹配各个场景     switch (type) {          //当匹配         case 1:             return str.replace(/^(\w)(\w+)/, function (v, v1, v2) {                  //v=验证本身  v1=s ; v2=dfwwerasfddffddeerAasdgFegqer                 return v1.toUpperCase() + v2.toLowerCase();             });         case 2:             return str.replace(/^(\w)(\w+)/, function (v, v1, v2) {                 //v=验证本身  v1=s ; v2=dfwwerasfddffddeerAasdgFegqer                 return v1.toLowerCase() + v2.toUpperCase();             });         case 3:             return ToggleCase(str);         case 4:             return str.toUpperCase();         case 5:             return str.toLowerCase();         default:             return str;     } }  console.log(changeCase(str,1))   //SdfwwerasfddffddeerAasdgFegqer
登入後複製

解析:

split:用來把字串分割成字串陣列\w: 數字0-9或字母a-z及A-Z,或底線\W: 非\w,除以上的特殊符號等   toUpperCase:轉大寫toLowerCase:轉小寫replace第二個參數可以是函數,函數的參數中,第一個是本身,第二個是正規符合內容,第三個匹配剩下的內容

下面我們就透過小實驗來驗證一下:
網路上有說replace是可以有4個參數的,但是我並沒有驗證到第四個代表的意義,前三個已經驗證,第一個參數為驗證本身,第二個正規匹配結果,第三為第二個匹配完剩下的值。

八、循環n次傳入的字串
str為傳入隨意字串,count為迴圈的次數

var str="abc";  var number=555; function repeatStr(str, count) {     //声明一个空字符串,用来保存生成后的新字符串     var text = &#39;&#39;;     //循环传入的count值,即循环的次数     for (var i = 0; i < count; i++) {        //循环一次就把字符串+到我们事先准备好的空字符串上         text += str;     }     return text; }   console.log(repeatStr(str, 3))         // "abcabcabc"   console.log(repeatStr(number, 3))      // "555555555"
登入後複製

解析:根據count循環的次數,在迴圈體內複製,return 返回+=後面的值

九、查找字串的A內容替換成B內容

let str="abacdasdfsd" function replaceAll(str,AFindText,ARepText){    raRegExp = new RegExp(AFindText,"g");    return str.replace(raRegExp,ARepText); } console.log(replaceAll(str,"a","x"))   // xbxcdxsdfsd
str:需要編輯的字串本身AFindText:需要替換的內容ARepText:被替換成的內容
解析:創建正則,匹配內容,替換

十、檢測常用格式,郵箱,手機號,名字,大寫,小寫,在表單驗證時,我們常常會需要去驗證一些內容,舉例幾個常用的驗證。

function checkType (str, type) {     switch (type) {         case &#39;email&#39;:             return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str);         case &#39;phone&#39;:             return /^1[3|4|5|7|8][0-9]{9}$/.test(str);         case &#39;tel&#39;:             return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str);         case &#39;number&#39;:             return /^[0-9]$/.test(str);         case &#39;english&#39;:             return /^[a-zA-Z]+$/.test(str);         case &#39;chinese&#39;:             return /^[\u4E00-\u9FA5]+$/.test(str);         case &#39;lower&#39;:             return /^[a-z]+$/.test(str);         case &#39;upper&#39;:             return /^[A-Z]+$/.test(str);         default :             return true;     } } console.log(checkType (&#39;hjkhjhT&#39;,&#39;lower&#39;))   //false
登入後複製

解析:    

checkType ('hjkhjhT','lower')'需要驗證的字串','匹配的格式' email:驗證郵箱phone:驗證手機號碼tel:驗證座機號碼number:驗證數字english:驗證英文字母chinese:驗證中文字lower:驗證小寫upper:驗證大寫

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!


相關閱讀:

CSS的編碼怎麼轉換

css3點擊顯示漣漪特效

怎麼用canvas實作小球與滑鼠的互動

#

以上是原生js的常用方法整理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

怎麼刪除微信好友?刪除微信好友的方法 怎麼刪除微信好友?刪除微信好友的方法 Mar 04, 2024 am 11:10 AM

微信是主流的聊天工具之一,我們可以透過微信認識新的朋友,聯絡老的朋友,維繫朋友之間的友誼。正如天下沒有不散的宴席,人與人之間的相處難免會發生意見不合的時候。當一個人極度影響你的情緒,或是在相處的時候發現三觀不合,沒辦法再繼續溝通,那麼我們可能需要刪除微信好友的方法。怎麼刪除微信好友?刪除微信好友的方法第一步:在微信主介面輕觸【通訊錄】;第二步:點選對應要刪除的好友,進入【詳細資料】;第三步:點選右上角【...】;第四步:點選下方【刪除】即可;第五步:了解後頁面提示後,點選【刪除聯絡人】即可;溫馨

怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 Mar 28, 2024 pm 12:50 PM

番茄小說是一款非常熱門的小說閱讀軟體,我們在番茄小說中經常會有新的小說和漫畫可以去閱讀,每一本小說和漫畫都很有意思,很多小伙伴也想著要去寫小說來賺取賺取零用錢,在把自己想要寫的小說內容編輯成文字,那麼我們要怎麼樣在這裡面去寫小說呢?小伙伴們都不知道,那就讓我們一起到本站本站中花點時間來看寫小說的方法介紹。分享番茄小說寫小說方法教學  1、先在手機上打開番茄免費小說app,點擊個人中心——作家中心  2、跳到番茄作家助手頁面——點擊創建新書在小說的結

七彩虹主機板怎麼進入bios?教你兩種方法 七彩虹主機板怎麼進入bios?教你兩種方法 Mar 13, 2024 pm 06:01 PM

  七彩虹主機板在中國國內市場享有較高的知名度和市場佔有率,但是有些七彩虹主機板的用戶還不清楚怎麼進入bios進行設定呢?針對這一情況,小編專門為大家帶來了兩種進入七彩虹主機板bios的方法,快來試試吧!方法一:使用u盤啟動快捷鍵直接進入u盤裝系統七彩虹主機板一鍵啟動u盤的快捷鍵是ESC或F11,首先使用黑鯊裝機大師製作一個黑鯊U盤啟動盤,然後開啟電腦,當看到開機畫面的時候,連續按下鍵盤上的ESC或F11鍵以後將會進入到一個啟動項順序選擇的窗口,將遊標移到顯示“USB”的地方,然

微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) 微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) May 01, 2024 pm 12:01 PM

而後悔莫及、人們常常會因為一些原因不小心刪除某些聯絡人、微信作為一款廣泛使用的社群軟體。幫助用戶解決這個問題,本文將介紹如何透過簡單的方法找回被刪除的聯絡人。 1.了解微信聯絡人刪除機制這為我們找回被刪除的聯絡人提供了可能性、微信中的聯絡人刪除機制是將其從通訊錄中移除,但並未完全刪除。 2.使用微信內建「通訊錄恢復」功能微信提供了「通訊錄恢復」節省時間和精力,使用者可以透過此功能快速找回先前刪除的聯絡人,功能。 3.進入微信設定頁面點選右下角,開啟微信應用程式「我」再點選右上角設定圖示、進入設定頁面,,

Win11管理員權限取得方法總計 Win11管理員權限取得方法總計 Mar 09, 2024 am 08:45 AM

Win11管理員權限取得方法匯總在Windows11作業系統中,管理員權限是非常重要的權限之一,可以讓使用者對系統進行各種操作。有時候,我們可能需要取得管理員權限來完成一些操作,例如安裝軟體、修改系統設定等。下面就為大家總結了一些取得Win11管理員權限的方法,希望能幫助大家。 1.使用快捷鍵在Windows11系統中,可以透過快捷鍵的方式快速開啟命令提

手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) 手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) May 04, 2024 pm 06:01 PM

手機遊戲成為了人們生活中不可或缺的一部分,隨著科技的發展。它以其可愛的龍蛋形象和有趣的孵化過程吸引了眾多玩家的關注,而其中一款備受矚目的遊戲就是手機版龍蛋。幫助玩家們在遊戲中更好地培養和成長自己的小龍,本文將向大家介紹手機版龍蛋的孵化方法。 1.選擇合適的龍蛋種類玩家需要仔細選擇自己喜歡並且適合自己的龍蛋種類,根據遊戲中提供的不同種類的龍蛋屬性和能力。 2.提升孵化機的等級玩家需要透過完成任務和收集道具來提升孵化機的等級,孵化機的等級決定了孵化速度和孵化成功率。 3.收集孵化所需的資源玩家需要在遊戲中

手機字體大小設定方法(輕鬆調整手機字體大小) 手機字體大小設定方法(輕鬆調整手機字體大小) May 07, 2024 pm 03:34 PM

字體大小的設定成為了重要的個人化需求,隨著手機成為人們日常生活的重要工具。以滿足不同使用者的需求、本文將介紹如何透過簡單的操作,提升手機使用體驗,調整手機字體大小。為什麼需要調整手機字體大小-調整字體大小可以使文字更清晰易讀-適合不同年齡段用戶的閱讀需求-方便視力不佳的用戶使用手機系統自帶字體大小設置功能-如何進入系統設置界面-在在設定介面中找到並進入"顯示"選項-找到"字體大小"選項並進行調整第三方應用調整字體大小-下載並安裝支援字體大小調整的應用程式-開啟應用程式並進入相關設定介面-根據個人

Oracle版本查詢方法詳解 Oracle版本查詢方法詳解 Mar 07, 2024 pm 09:21 PM

Oracle版本查詢方法詳解Oracle是目前世界上最受歡迎的關聯式資料庫管理系統之一,它提供了豐富的功能和強大的效能,廣泛應用於企業。在進行資料庫管理和開發過程中,了解Oracle資料庫的版本是非常重要的。本文將詳細介紹如何查詢Oracle資料庫的版本信息,並給出具體的程式碼範例。查詢資料庫版本的SQL語句在Oracle資料庫中,可以透過執行簡單的SQL語句

See all articles