//能够判别自定义对象类型及父子类型
//自定义类型
function Person(){};
Person instanceof Function; //true
//父子类型
function Point(x,y){
this.x = x;
this.y = y;
}
function Cirele(x,y,r){
Point.call(this,x,y);
this.radius = r;
}
Circle.prototype = new Point();
Circle.prototype.constructor = Circle;
var c = new Circle(1,1,2);
c instanceof Circle //true
c instanceof Point //true
结论:
1.可以判别内置对象类型
2.不能判别原始类型
3.判别自定义对象类型
4.结合1和3,用instanceof可以识别所有的对象类型
###(3)Object.prototype.toString.call**
Object.prototype.toString.call(“123”); //“[object String]”
//封装函数,并做截取
function type(obj){
return Object.prototype.toString.call(obj).slice(8,-1);
}
//测试
type(“123”); //“String”
//自定义类型
function Point(x,y){
this.x = x;
this.y = y;
}
//测试
type(new Point(1,2)); //“Object”
结论:
1.上述封装的函数可以识别基本类型以及引用对象类型
2.不能识别自定义对象类型
###(4)constructor(构造这个对象的构造函数的本身)
//判断基本类型(基本类型也有构造函数);但是null和undefined除外,它俩没有构造函数
“jerry”.constructor === String; //true
(1).constructor ===Number; //true
//判断引用类型
new Date().constructor === Date; //true
[].constructor === Array; //true
//判断自定义对象
function Person(name){
this.name = name;
}
new Person(“jerry”).constructor === Person; //true
//对constructor判别进行方法的封装
function getConstructorName(obj){
return (obj=undefined||obj=null)?obj:
(obj.constructor && obj.constructor.toString().match(/function\s*([^(]*)/)[1]);
}
封装的原理:
1.obj:假如传入的参数是null或者undefined,没有构造函数直接返回
2.obj.constructor如果存在执行&&后面的语句
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
前端框架
前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。
以 Vue 为例,我整理了如下的面试题。
我整理了如下的面试题。