zepto原始碼知識點

2021-09-14 05:51:13 字數 1283 閱讀 9552

記錄看原始碼時候不太了解的知識點

matchesselector = element.matches ||element.webkitmatchesselector ||element.mozmatchesselector ||element.omatchesselector ||element.matchesselector
關於h5新的選擇器api之前只了解queryseletor和queryseletorall,matchesselector這個方法是匹配是否符合選擇器,返回值是true false;但是大多不支援,需要用到瀏覽器字首,

let s = document.queryseletor('div').matchesseletor('.theone');

console.log(s); //true;

match = ~zepto.qsa(parent, selector).indexof(element)
有個不常用的運算子按位非運算子~

感覺是不實用的方法

let num = 23,

boo = false,

obj = {},

arr = ,

na = nan,

str = 'abcdefg';

~num //-24,如果運算元能夠轉換為數值就直接取反並且減去一;

~obj //-1,{}.,undefined,null,false,nan,「」都轉化為數字0在取反

~str //-1對無法轉為數值的字串等,轉為0

//~的運算等級比.()優先順序低

運算子優先級別大概的邏輯是

取值》一元操作符(包含非運算子!)>算術運算》大小比較》相等不相等》邏輯與或》賦值》三元》逗號

function isplainobject(obj)
undefined和null的區別

undefined == null //如果str == null那麼str會有兩個值成立

typeof null === 'object'

typeof undefined === 'undefined'

判斷是否是類似的陣列物件,即有length屬性

function likearray(obj)

JFinal 原始碼知識點

1 jfinal中自帶json工具類,沒必要匯入其他的轉化包。使用 setattr status success renderjson 會將所有setattr 的,轉化成json格式。2 kit包中定義了一些工具類的擴充套件 例如 1 轉化json的工具 jsonkit.tojson str 2 加...

zepto原始碼分析

首先我們看一下如下 如何給乙個陣列物件新增其他方法 var arr 1,2,3 arr.proto concat array.prototype.concat,push array.prototype.push arr.push 4 1,2,3,4 arr.addclass addclass 我們修...

zepto原始碼結構

在引入zepto檔案以後,我們就可以使用zepto的方法,例如 selector 這是因為下面的 window.zepto zepto window.undefined window.zepto 複製 在window物件上,我們繫結了zepto,zepto這是乙個立即執行函式。如果 不存在,就把wi...