> 文章列表 > 面试内容笔记总结

面试内容笔记总结

面试内容笔记总结

面试笔记整理

基础知识点

(1) typeof null  ===>  Object
(2) NaN == NaN   ===>  false
(3) null == undefined  ===> 规定相等
(4) null === undefined ===> false
function bubbleSort(arr) {var len = arr.length;for (var i = 0; i < len-1; i++) {for (var j = 0; j < len-1-i; j++) {if (arr[j] > arr[j+1]) {var temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}}}return arr;
}

(6) call、apply、bind区别

1、call,apply,bind的相同点:
都是改变this指向的;
第一个参数都是this要指向的对象;
都可以利用后续参数传参;2、call,apply,bind的区别:
call和bind的参数是依次传参,一一对应的;
但apply只有两个参数,第二个参数为数组;
call和apply都是对函数进行直接调用,而bind方法返回的仍是一个函数;

(8)简述数组和链表区别

数组和链表都可以用来存储一组数据,但它们的实现方式不同,主要区别如下:内存分配方式:数组在内存中是一块连续的区域,其元素的地址是连续的;而链表中的节点在内存中可以是任意位置,节点之间的链接用指针来实现。大小固定与大小可变:数组在创建时需要指定大小,在使用过程中大小不可变,而链表大小可以动态改变。访问和插入元素的效率:数组的随机访问效率高,时间复杂度为O(1);但在插入或删除元素时需要移动后续元素,时间复杂度为O(n)。链表的随机访问效率差,时间复杂度为O(n),但在插入或删除元素时只需要操作前后节点的指针,时间复杂度为O(1)。

(9)使用js如何实现获取当前窗口url问号后面指定参数

数组和链表都可以用来存储一组数据,但它们的实现方式不同,主要区别如下:内存分配方式:数组在内存中是一块连续的区域,其元素的地址是连续的;而链表中的节点在内存中可以是任意位置,节点之间的链接用指针来实现。大小固定与大小可变:数组在创建时需要指定大小,在使用过程中大小不可变,而链表大小可以动态改变。访问和插入元素的效率:数组的随机访问效率高,时间复杂度为O(1);但在插入或删除元素时需要移动后续元素,时间复杂度为O(n)。链表的随机访问效率差,时间复杂度为O(n),但在插入或删除元素时只需要操作前后节点的指针,时间复杂度为O(1)。

(10)可以使用以下代码来获取当前窗口URL问号后面指定参数:

var url = window.location.href;
var param = url.split('?')[1];
var paramValue = param.split('=')[1];

(11)给 Array 对象增加一个原型方法,用于删除数组中重复元素,返回值是一个
包含被删除的重复元素的新数组。

Array.prototype.removeDuplicates = function() {let obj = {};let result = [];for (let i = 0; i < this.length; i++) {if (!obj[this[i]]) {obj[this[i]] = 1;} else {result.push(this[i]);}}return result;
}

在这个方法中,我们使用了一个对象来存储每个元素在数组中出现的次数。如果一个元素出现了多次,我们将它添加到结果数组中,并从原数组中删除。最终,我们将包含被删除的元素的结果数组返回给调用者。希望这个回答能够解决您的问题!

(12)
(1)添加方法:可以使用 appendChild() 方法将一个节点添加到另一个节点的末尾;也可以使用 insertBefore() 方法将一个节点插入到指定节点的前面。
(2)移除方法:使用 removeChild() 方法将一个节点从其父节点中移除。
(3)替换方法:使用 replaceChild() 方法将一个节点替换成另一个节点。
(4)插入方法:使用 insertAdjacentHTML() 方法向节点前面或后面插入 HTML 代码。
(5)复制方法:可以使用 cloneNode() 方法复制一个节点。

CSS盒子模型由哪四部分组成?
盒子模型由元素内容(content)、内边距(padding)、边框(border)和外边距(margin)几个要素组成。

基本数据类型包括:数字、字符串、布尔值、null、undefined;
引用数据类型包括:Object (数组、对象、函数等)

常见的行内标签有:<span><a><img><strong><em><input>等;
常见的块级标签有:<div><p><h1>~<h6><ul><ol><li><form><dl>等。

(13) CSS有以下几种选择器,可以继承的属性

元素选择器:通过元素名称进行选择,例如p{}
ID选择器:通过元素的ID属性进行选择,例如#para1{}
类选择器:通过元素的class属性进行选择,例如 .intro{}
属性选择器:通过元素的属性进行选择,例如a[target="_blank"]{}
伪类选择器:通过元素的特殊状态进行选择,例如a:hover{}
伪元素选择器:通过元素的特殊部分进行选择,例如p::first-line{}
CSS中一些属性是可以继承的,例如:font-size
font-family
color
line-height
text-align
visibility
white-space
word-spacing
letter-spacing

面向对象的三大基本特征是封装、继承、多态。五大基本原则是单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。