jquery工具方法整理
或许有人说jquery不是过时了吗?怎么还用,但我要告诉你,
没有永恒的库或者框架,只有其中的思想是最宝贵的,也可以结合游戏来讲,就是一代版本一代神
jquery工具方法总结
1.下载jquery3.5.1
由于本人是通过yarn进行下载的,如果没有安装yarn,可以参考后面的链接或者用npm包下载,我使用的命令如下:
yarn add jquery@3.5.1
[注意,这里的jquery的q千万不能大写,我已经掉几次坑了!!!]
安装详细请参考 :
npm学习
npm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org //cnpm安装
复制代码
yarn官网
yarn
安装完成后文件夹如下:
2.jquery工具方法总结
(1)检测类型方法
之前写过,但是太匆匆忙忙了,就连解释都没有写了,这次写完整些,
返回值为小写开头的数据类型字母,例如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=>{
class2type[“[object “+item+”]”] = item.toLowerCase(); //遍历数组为class2type添加属性和对应的值,如class2type[object String]:string
})
function toType(obj){
if(obj==null){//排除null和undefined
return obj+‘’;
}
return typeof obj === “object” || typeof obj === “function” ?
class2type[toString.call(obj)] || “object” : typeof obj;
}
复制代码
具体如下:
2.判断是否是函数
用于检测是否是一个函数,返回值为
布尔值
//这里的nodeType是为了解决兼容问题
//在某些浏览器中,typeof对HTML 元素返回“function”
//(即“文件类型”。createElement(“object”) === “function” ')。
//我们不想将任何 DOM节点分类为函数。
function isFunction(obj){//判断是否是函数
return typeof obj === ‘function’ && typeof obj.nodeType !== “number”;
}
复制代码
3.判断是否是window
用于判断是否是一个window,返回值为
布尔值
//这里巧用了window上面有个window属性
function isWindow(obj){//判断是否是window
return obj!=null && obj.window === window;
}
复制代码
4.判断是否是纯粹的对象
用于判断是否是纯粹
【{},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”){//检测是否是object类型,不是则直接返回false
return false
}
//判断proto上面是否有constructor这个属性,有则直接获取构造器
Ctol = hasOwn.call(ptoto,“constructor”) && proto.constructor;
return typeof Ctol === “function” && fnToString.call( Ctor ) === ObjectFunctionString;
}
复制代码
5.判断是否是一个空对象
用于判断是否是一个空对象,返回值为
布尔值
原jq代码 :
//缺陷:无法检测Symbol,以及原型上添加的属性也会被forin循环出来
function isEmptyObject: function( obj ) {
var name;
for ( name in obj ) {//循环如果有属性则直接返回false
return false;
}
return true;
}
复制代码
如图:`我们是希望只要当前对象没有属性,则被判断为空对象,而不是原型上有对象也被认为不是空对象
修改之后
function isEmptyObject(obj){//判断是否是一个空对象
let arr = [
…Object.getOwnPropertyNames(obj),//获取自身上的属性
…Object.getOwnPropertySymbols(obj)//获取symbol
]
return arr.length > 0;
}
复制代码
6.检测是否是类数组
用于检测是否是类数组或者数组,返回值为
布尔值
function isArrayLike( obj ) {
var length = !!obj && “length” in obj && obj.length,//obj存在并且有length属性,则直接回去obj的length
type = toType( obj );//前面的检测类型
if ( isFunction( obj ) || isWindow( obj ) ) {//因为函数和对象中也有length属性,所以要排除他们
return false;
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等
详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车
前端视频资料:
S,JavaScript,Vue,ES6,HTTP,浏览器,算法等等**
详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车
[外链图片转存中…(img-d9zda56z-1712940589423)]
前端视频资料: