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/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。 你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。 这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。 这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: