javascripts篇
1、js的数据类型
- 基本类型 :String 、Number、Boolean、Null、Undefined、Symbol
- 引用类型 :Object、Array、Function、Date、RegExp
2、判断js数据类型的方法
typeOf、instancef、constructor、Object.prototype.toString()
3、js变量声明方式
- let 局部变量
- const 局部常量
- var 全局变量
- function 定义函数
- class 定义类
- import 加载模块
4、js变量和函数声明的提升
在作用域中,js代码自上而下执行之前,浏览器会把所有带var / function关键字进行提前声明或定义
函数提升优先级比变量提升要高
5、闭包
闭包就是能够读取其他函数内部变量的函数(跨作用域的变量访问)
6、== 和 === 的区别
- 用 == 判断相等时,若类型不一致,会进行强制类型转化后再进行比较
- 用 === 判断相等时,若类型不一致,不会做强制类型准换,会返回 false,属于严格意义上的全等
7、js数组和对象的遍历方式
- 数组:for、for...in、for...of、forEach、map
- 对象:for...in 、 object.keys、Object.getOwnPropertyNames(obj)
8、常见数组去重方法
new Set()、双重for循环、for+indexOf 、排序后相邻去除 sort+for ...
9、常用数组的添加删除
push/pop 向数组的末尾添加、删除数据
unshift/shift 向数组的开头添加、删除数据
splice 向指定的index索引处插入、删除数据
10、箭头函数和普通函数的区别
- 箭头函数:用箭头定义、全都是匿名函数、不能用于构造函数、this指向、不具有 arguments 对象、不具有 prototype 原型、不具有 super...
- 普通函数:有匿名、具名函数、用于构造函数、this指向、有arguments 对象、有 prototype 原型...
11、函数this指向
- 普通函数:指向调用这个函数的对象,默认是window
- 箭头函数:指向箭头函数定义时所处的对象
- 构造函数:指向new出来的实例对象,优先级最高
- 事件处理函数:指向事件源对象
- 定时器回调函数:指向window对象
12、改变函数内部 this 指向方法
call和apply都是改变上下文中的this并立即执行这个函数,两者作用相同,但传参不同,call可接受参数列表,apply可接受参数数组
bind方法不会调用函数,但是能改变函数内部this 指向,返回的是新函数
13、深浅拷贝
- 浅拷贝:只拷贝数据的内存地址(基本数据),影响原始数据,例:map、foreach、filter、concat...
- 深拷贝:在内存中开辟一个新的存储空间存放的数据,不影响原始数据,例:递归、JSON.parse、JSON.stringify
14、原型和原型链
- 原型:每一个函数都有一个prototype属性,该属性指向原型,属性值是一个对象,对象包含可以让所有实例共享的属性和方法。
- 原型链:对象可以通过proto来找寻不属于该对象的属性,proto将所有对象链接起来形成一个链式结构
15、js中new的过程发生了什么
- 先创建了一个新的对象 let obj = new Object();
- 连接到原型
- 绑定this值
- 返回一个新对象
16、attribute 和 property
- attribute 是dom节点自带的,HTML标签上的特性
- property 是dom在js对象中的属性
17、内存泄漏
内存泄漏就是由于某种原因造成程序未能释放已经动态分配的内存
造成原因:
- 意外形成的全局变量
- 定时器未清除
- 闭包
- 没有清理对DOM元素的引用
18、垃圾回收机制
垃圾回收机制:定期找出那些不再继续使用的变量,然后释放其内存
目的是为了防止内存泄漏,包含标记清除、引用计数两个方法
19、异步编程
- callback回调
- 发布/订阅
- Promise
- Generator
- asunc/await
- 常用定时器函数
20、面向对象编程
面向对象的特征:封装,继承,多态
主要是为了解决代码复用的问题。
21、数组排序
- sort()
- 选择排序
- 冒泡排序
- 快速排序
- 插入排序
- 归并排序
- 堆排序
......
22、promise
promise是一个对象,用来处理异步操作的。有三个状态,初始是pending状态,执行了resolve()后,状态值变为onFulfilled,执行了reject()后,状态值变为onRejected。promise对象的状态值一旦确定,就不会再改变。
promise的then方法带有以下三个参数:成功回调,失败回调,前进回调,后l两个参数是可选的。Promise中最为重要的是状态,通过then的状态传递可以实现回调函数链式操作的实现。
23、解构
从数组和对象中提取值,对变量进行赋值
let [a,b] = [2,4]
css篇
1、盒模型
属性包括 padding(内边距)、margin(外边距)、border(边框)、content(内容)
种类包括 标准盒模型、IE盒模型
区别:IE盒模型的content部分包含了border和padding,标准盒模型不包括。
2、文字效果
3、HTML语义化标签
4、css选择器
5、隐藏元素
6、行内元素、块级元素
7、BFC