或許有人說jquery不是過時了嗎?怎麼還用,但我要告訴你,沒有永恆的庫或者框架,只有其中的思想是最寶貴的,也可以結合遊戲來講,就是一代版本一代神
安裝詳細請參考 :
npm學習
npm
$ npm install -g cnpm --registry= //cnpm安裝
複製**
yarn官網
yarn
安裝完成後資料夾如下:
之前寫過,但是太匆匆忙忙了,就連解釋都沒有寫了,這次寫完整些,返回值為小寫開頭的資料型別字母,例如string型別的返回string
var class2type = {};//定義乙個空物件
var tostring = class2type.tostring;//相當於object.prototype.tostring
["boolean","number","string","function","array","date","regexp","object","error","symbol","bigint","generatorfunction"].foreach(item=>)
function totype(obj)
return typeof obj === "object" || typeof obj === "function" ?
class2type[tostring.call(obj)] || "object" : typeof obj;
}複製**
具體如下:
用於檢測是否是乙個函式,返回值為布林值
//這裡的nodetype是為了解決相容問題
//在某些瀏覽器中,typeof對html 元素返回「function」
//(即「檔案型別」。createelement("object") === "function" ')。
//我們不想將*任何* dom節點分類為函式。
function isfunction(obj)
複製**
用於判斷是否是乙個window,返回值為布林值
//這裡巧用了window上面有個window屬性
function iswindow(obj)
複製**
用於判斷是否是純粹【{},new object,object.create(null)】
的物件,返回值為布林值
var getproto = object.getprototypeof;//獲取原型
var hasown = class2type.hasownproperty;//相當於object.prototype.hasownproperty
function isplainobject(obj),new object,object.create(null))
var proto = getproto(obj),
ctol;
if(!obj || totype(obj)!=="object")
//判斷proto上面是否有constructor這個屬性,有則直接獲取構造器
ctol = hasown.call(ptoto,"constructor") && proto.constructor;
return typeof ctol === "function" && fntostring.call( ctor ) === objectfunctionstring;
}複製**
用於判斷是否是乙個空物件,返回值為布林值
原jq** :
//缺陷:無法檢測symbol,以及原型上新增的屬性也會被forin迴圈出來
function isemptyobject: function( obj )
return true;
}複製**
如圖:`我們是希望只要當前物件沒有屬性,則被判斷為空物件,而不是原型上有物件也被認為不是空物件![](https://pic.w3help.cc/92f/d7fded90510a312a60b50fe5ccd04.jpeg)
修改之後
function isemptyobject(obj)
複製**
用於檢測是否是類陣列或者陣列,返回值為布林值
function isarraylike( obj )
return type === "array" || length === 0 ||
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}複製**
用於遍歷陣列或者物件,返回值為每一項和索引
原jq :
//缺陷不能遍歷出symbol
function each( obj, callback )
} } else
} }return obj;
}複製**
如圖所示:不能遍歷出symbol
![](https://pic.w3help.cc/03f/2b01737596d71c2cf0b741bac6a4a.jpeg)
修改後 :
function getpropertyname(obj)
function each( obj, callback )
} } else {
let keys = getpropertyname(obj),
length = keys.length
for(;i如圖所示:
jQuery工具和方法
jquery方法和工具 1.each 遍歷陣列或物件中的資料 var obj json物件 json物件 js物件 console.log parsejson json json json陣列 json陣列 js陣列 console.log parsejson json json.parse jso...
整理Jquery的遍歷方法
一 遍歷父元素的幾種方法 1.遍歷直接父元素 parent 方法 parent 方法只會返回被選元素的直接父元素。span parent 2.遍歷所有父元素 parents 方法parents 方法返回被選元素的所有祖先元素,它一路向上直到文件的根元素 span parents 返回span的所有父...
jQuery 核心函式和工具方法
接收乙個dom元素 會被包裝成乙個jquery物件返回給我們 var span document.getelementsbytagname span 0 console.log span span var span span console.log span span 原生foreach方法遍歷陣列...