总结
秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!
而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。
这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
资料截图 :
高级前端工程师必备资料包
test():window
p.test() : p
new test() : 新建的对象
p.call(obj) : obj
复制代码
- 箭头函数在哪个作用域下声明,
this
就指向谁 - 箭头函数和普通函数的区别
this
绑定 - 普通的
function
不会绑定this
在进入到普通函数之前,this
指向Window
,进入普通函数之后,this
就会变成该函数的指向, - 而箭头函数会绑定
this
,在进入到箭头函数之前,this
指向Windows
,进入之后,由于箭头函数会绑定this
,所以这时候this
还是指向window
, - 如果先进入普通函数再进入箭头函数,
this
就会从进入之前的指向window
变成该函数指向;
函数的protoype属性
每个函数都有一个prototype
属性,它默认指向一个Object
空对象(即称为:原型对象)这里 Object
是一个函数 原型对象中有一个属性constructor
,它指向函数对象 Date.prototype.constructor===Date
给原型对象添加属性(一般是方法
函数的所有实例对象自动拥有原型对象中的所有属性(方法) 添加Date.prototype.getSum=function(){}
,Date
会有getSum
这个方法
显式原型与隐式原型
- 每个函数function 都有一个
prototype
属性,即显式原型(属性) - 每个实例对象 都有一个
__proto__
,可称为隐式原型(属性) - 对象的隐式原型的值为其对应构造函数的显式原型的值
Fn.prototype===fn.__proto__
都保存同一个对象的地址值 默认指向一个Object
空对象,原型对象 - 原型链就是找隐式原型属性
__proto__
- 原型链是用来查找对象属性的
- 读取对象的属性值时:会自动到原型链中去查找
- 设置对象属性值时:不会查找原型链,如果当前对象中没有该属性,会直接添加此属性并设置其值
- 方法一般定义在原型中
(__proto__)
,属性一般通过构造函数定义在对象本身上 - 函数的显式原型指向的对象默认是空
Object
实例对象,(但Object
不满足这句话)因为原型对象其实就是一个对象,当然可以说是Object
实例 - 所有函数都是
Function
的实例,(包括Function
它自己)
Function.__proto__=== Function.prototype// true
复制代码
- Object的原型对象是原型链的尽头
Object.prototype.__proto__ // null
复制代码
变量声明提升
//在定义语句之前就能访问到
var a =3
function fn(){
console.log(a)
var a=4
}
fn() // undefined
复制代码
因为变量会声明提升,在进入函数时,函数中var
的变量会最先声明,但是没有赋值,然后再执行输出,最后执行赋值,所以结果是未定义,找变量会先在函数里面找,就近原则
箭头函数和普通函数的区别
- 箭头不会绑定,普通函数会绑定(能绑定就是能改变)
this
指向不同- 普通函数,谁调用这个函数,
this
指向谁 - 箭头函数,在哪里定义函数,
this
指向谁 - 箭头函数适合与
this
无关的回调,定时器,数组的回调 - 不适合与
this
有关的回调,事件回调,对象的方法
变量不是数据本身,它仅仅是存储数据的容器
let a = [0,1,2];
let b = a;
b[0] = 5;
console.log(a);// [5, 1, 2]
复制代码
数组后面习惯性敲一个空格
// 获取用户输入的内容,并且输出到页面 1输入,2存储,3输出
let uname = prompt('请输入您的姓名:')
document.write(uname)
复制代码
js基本数据类型
- 数字类型
- 字符串类型
boolean
布尔类型undefined
未定义类型 只声明,未赋值null
空类型
引用数据类型
object
对象function
函数array
数组js
推荐使用单引号引起字符串 “” ‘’``
模板字符串 拼接字符串和变量 在反引号中可回车换行不报错
document.write('大家好,我叫’ + name + ',今年' + age + '岁')
复制代码
内容拼接变量时,用${}
包住变量,整体用反引号引起
//也可以`${3.14 * r * r}`,一般不建议这样
document.write(`大家好,我叫${name},今年${age}岁`)
document.write()//能够识别html标签
console.log(typeof null) // object null 就是将一个对象赋值给一个变量,只不过这个对象还没创建好,就先让null赋值给这个变量
复制代码
数据类型转换
隐式转换,系统内部自动转换
总结
秋招即将开始,校招的朋友普遍是缺少项目经历的,所以底层逻辑,基础知识要掌握好!
而一般的社招,更是神仙打架。特别强调,项目经历不可忽视;几乎简历上提到的项目都会被刨根问底,所以项目应用的技术要熟练,底层原理必须清楚。
这里给大家提供一份汇集各大厂面试高频核心考点前端学习资料。涵盖 HTML,CSS,JavaScript,HTTP,TCP协议,浏览器,Vue框架,算法等高频考点238道(含答案)!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
资料截图 :
高级前端工程师必备资料包