关键词:
lodash的类型判断源码
《饿了么大前端 Node.js 进阶教程》地址:https://github.com/ElemeFE/node-interview
lodash介绍:lodash是目前很流行的JS工具库,它封装了许多JS常用到的工具方法,在阅读源码时,你会发现代码冗长;官网说这是性能优化,不管你信不信,反正我信了!
(1)null 类型
function isNull(value) {
return value === null;
}
(2)number类型
function isNumber(value) {
return typeof value == ‘number‘ ||
(isObjectLike(value) && baseGetTag(value) == ‘[object Number]‘);
}
细心地同学会问:“我去,这么长!”,没错,就是这么长。因为Number类型要包含很多种情况在里面;
例如:这一种new Number()出来的情况,typeof就是个对象
(3)string类型
function isString(value){
const type = typeof value;
return type == ‘string‘ || (type == ‘object‘ && value != null && !Array.isArray(value) && getTag(value) == ‘[object String]‘);
}
和判断number类型一样,排除new String()的状况,你会说:Object.prototype.toString.call就一步搞定,但是这会影响性能,反正官网是这么解释的;
(4)arguments
function isArguments(value) {
return typeof value == ‘object‘ && value !== null && getTag(value) == ‘[object Arguments]‘;
}
(5)function
function isFunction(value) {
if (!isObject(value)) {
return false
}
const tag = baseGetTag(value)
return tag == ‘[object Function]‘ || tag == ‘[object AsyncFunction]‘ ||
tag == ‘[object GeneratorFunction]‘ || tag == ‘[object Proxy]‘
}
主要是增加了对于原生方法的判断
(6)boolean
function isBoolean(value) {
return value === true || value === false ||
(isObjectLike(value) && baseGetTag(value) == ‘[object Boolean]‘)
}
总结:总的来说,类型判断是从typeof、Object.prototype.toString.call和值,3个方面来配合进行判断的;
《饿了么大前端node.js进阶教程》—javascript基础问题—作用域
《饿了么大前端Node.js进阶教程》地址:https://github.com/ElemeFE/node-interview作用域从某种意义上来说是个难点,它需要你真真正正的了解JS的分词、词法分析,语法分析,代码生成,LHS查询,RHS查询等深层的东西。如果不知道可以读... 查看详情
javascript和node.js的一些文章收集
...大文件处理Promise必知必会(十道题)饿了么大前端Node.js进阶教程 查看详情
006_饿了么大前端总监sofish帮你理清前端工程师及大前端团队的成长问题!
...ish的约稿《什么样的人可以称为架构师?》、采访《 饿了么大前端团队究竟是如何落地和管理的?》以及sofish 做客大咖说直播节目的总结和整理,希望能帮助各位淀粉更清晰地理解sofish的观点。获取大咖说视频下载链接... 查看详情
饿了么大数据离线计算引擎实践
一、背景饿了么BDI-大数据平台研发团队目前共有20人左右,主要负责离线&实时Infra和平台工具开发。其中6人的离线团队需要维护大数据集群规模如下,Hadoop集群规模1300+HDFS存量数据40+PB,Read3.5PB+/天,W... 查看详情
饿了么大数据离线计算引擎实践
一、背景饿了么BDI-大数据平台研发团队目前共有20人左右,主要负责离线&实时Infra和平台工具开发。其中6人的离线团队需要维护大数据集群规模如下,Hadoop集群规模1300+HDFS存量数据40+PB,Read3.5PB+/天,W... 查看详情
一位年龄35的前饿了么同事,退休了!
...位同事(化名林聪)今年35岁,林聪,前饿了么大前端技术总监,在加入饿了么之前在支付宝、百姓网工作过。从饿了么离职之后任石墨文档上海负责人。今年7月的时候居然宣称自己退休了!那么今天我们... 查看详情
饿了么基于vue2.0的通用组件开发之路(分享会记录)
Element:一套通用组件库的开发之路Element是由饿了么UED设计、饿了么大前端开发的一套基于Vue2.0的桌面端组件库。今天我们要分享的就是开发Element的一些心得。官网:http://element.eleme.io/#/github:https://github.com/ElemeFE/element ... 查看详情
深入大数据平台心脏:饿了么调度系统全解
随着饿了么在大数据应用的不断深入,需要解决任务数量增长快、任务多样化、任务关系复杂、任务执行效率低及任务失败不可控等问题。 饿了么大数据平台现状:每天完成大数据任务计算54000+;节点集群85台。 ... 查看详情
vue2.0的通用组件
Element:一套通用组件库的开发之路Element是由饿了么UED设计、饿了么大前端开发的一套基于Vue2.0的桌面端组件库。今天我们要分享的就是开发Element的一些心得。官网:http://element.eleme.io/#/github:https://github.com/ElemeFE/element ... 查看详情
vue2高仿饿了么app
Github地址: https://github.com/ccyinghua/appEleme-project 一、构建项目所用:vueinitwebpackappEleme-projectnpmrundevcnpminstallnode-sass--save-devcnpminstallsass-loader--save-dev//sass-loader依赖于node-sas 查看详情
elementtabs组件中使用ve-histogram组件渲染不出来
...s组件中使用ve-histogram组件渲染不出来发现问题提了issue,饿了么前端“西瓜”同学很快做了回复,饿了么大前端团队有沉淀很专业,赞。 tip: GitHub的用法与礼仪心得:使用开源库发现问题时,先自己探索尝试各种情... 查看详情
[web前端]前端频道之团队维护聚合订阅
...(京东)WEB前端开发百度WEB前端研发部搜车大无线团队博客饿了么大前端美团点评技术团队携程设计委员会前端观察(腾讯)前 查看详情
前端实战项目:vue.js实现外卖平台webapp,饿了么项目的翻版
...scroll插件,进行左右滑动图片。效果预览:再说一篇,是饿了么的翻版。 查看详情
vue.js高仿饿了么外卖app
1.架构从传统的MVC向RESTAPI+前端MV*迁移参考链接:http://blog.csdn.net/broadview2006/article/details/8615055http://blog.csdn.net/u013628152/article/details/42709033MV*包括:MVC、MVP、MVVMvue.js是MVVM框架 2.Iconmoon制作图标字体2 查看详情
饿了么面试——高级java软件工程师经验
面试案例1一面:画出你所做项目的流程图list的数据是如何存储如何扩容的stringstringBuilderstringBuffer的区别SpringAOP原理Springboot启动过程事物隔离级别mysql索引类型,画出索引树JVM内存模型内存溢出的原因,有没有实际查内存泄漏的... 查看详情
饿了么商家名字怎么加后缀
参考技术A饿了么美团店加特符号,就是有你起名时约符号,直接按复制,复制后在游戏里改名添加,按你约爱好设就... 参考技术B饿了么美团店加特符号,就是有你起名时约符号,直接按复制,复制后在游戏里改名添加,按你约... 查看详情
饿了么账户异常怎么解决?
饿了么账户异常有以下几种解决方法:先退出登录,然后在登录试试。一般来说账号在其他地方登录次数过多才会这样。2.不行的话可以用账号申诉,看看自己账号有没有被盗用。3.设置好密保问题,保护好自己账号。也有肯能... 查看详情
饿了么订单记录怎么删除
...我们饿的时候已经不需要再自己动手做饭了,只需要点开饿了么就可以解决吃饭的问题。饿了么的出现给我们生活带来了很大的方便,但是很多朋友一直不知道怎么删除订单记录,今天就让我来教教大家吧。1、打开饿了么,我... 查看详情