课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
程序员技术面试基本上是大部分的互联网软件开发公司都会设置的一个面试环节,而今天我们就给大家分享了常见的几个面试题,一起来了解一下吧。
一.new的实现原理是什么?
new的实现原理:
创建一个空对象,构造函数中的this指向这个空对象。
这个新对象被执行[[原型]]连接。
执行构造函数方法,属性和方法被添加到this引用的对象中。
如果构造函数中没有返回其它对象,那么返回this,即创建的这个的新对象,否则,返回构造函数中返回的对象。
二.如何正确判断this的指向?
如果用一句话说明this的指向,那么即是:谁调用它,this就指向谁。但是仅通过这句话,我们很多时候并不能准确判断this的指向。因此我们需要借助一些规则去帮助自己:
this的指向可以按照以下顺序判断:
全局环境中的this
浏览器环境:无论是否在严格模式下,在全局执行环境中(在任何函数体外部)this都指向全局对象window;
node环境:无论是否在严格模式下,在全局执行环境中(在任何函数体外部),this都是空对象{};
是否是new绑定
三.深拷贝和浅拷贝的区别是什么?实现一个深拷贝
深拷贝和浅拷贝是针对复杂数据类型来说的,浅拷贝只拷贝一层,而深拷贝是层层拷贝。
深拷贝
深拷贝复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制。深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。
浅拷贝
浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。
四.什么是BFC?BFC的布局规则是什么?如何创建BFC?
Box是CSS布局的对象和基本单位,页面是由若干个Box组成的。
元素的类型和display属性,决定了这个Box的类型。不同类型的Box会参与不同的FormattingContext。
五.隐藏页面中的某个元素的方法有哪些?
隐藏类型
屏幕并不是的输出机制,比如说屏幕上看不见的元素(隐藏的元素),其中一些依然能够被读屏软件阅读出来(因为读屏软件依赖于可访问性树来阐述)。为了消除它们之间的歧义,我们将其归为三大类:
完全隐藏:元素从渲染树中消失,不占据空间。
视觉上的隐藏:屏幕中不可见,占据空间。
语义上的隐藏:读屏软件不可读,但正常占据空。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。