前端面试准备

1原型链

在这里插入图片描述

2.数据类型、数据判断

类型:Number、String、Boolean、null、underfined、Object(引用数据类型)、symbol
数据判断:
typeof:一般用来判断基本类型判断,null判断类型为Object,array、object都属于object
instanceof:一般用来检测对象类型,以及继承关系
Object.prototype.toString.call,这个相对于来说比较安全,但是返回的为数组,需要做处理

3.new的时候发生了什么

1.创建一个空对象,将它的引用赋值给this,继承函数的原型
2.通过this将属性和方法添加至这个对象
3.最后返回this指向的新对象,也就是实例。

4、bind、call、apply

	```
	var obj={
	    name:"liu",
	    myAge:this.age,
	    myFun:function(){
	        console.log(this);  // this指向obj
	        console.log(this.name+";"+this.age)
	    }

}
```
相同点:都是为了改变this的指向
不同点:1.bind是返回的一个函数需要调用
例如:obj.myFun.bind(arg)()
2.穿参不一样
apply:obj.myFun.apply(arg,[1,2,3,4]) //传参是数组
call:obj.myFun.cal(arg,1,2,3,4) //传参是字符串
bind:obj.myFun.bind(arg,1,2,3,4)() //传参跟call一致

5.this指向的问题

1.当一个函数并非对象的属性的时候,这时候this指向全局对象
2.函数作为属性的时候this指向对象,比如:o.myfun(),特殊情况:var b= o.myfn b() 这时候指向this,因为b是全局变量
3.构造函数调用,当用new关键字,返回的是一个对象,this指向的就是那个返回的对象;如果返回的不是对象,this还是指向函数的实例,虽然null属于对象,但是返回null依然指向函数实例
4.构造函数new 后面带不带括号的区别,不带括号优先级会低于.(ps:调用对象),加上()优先级提升就不会报错了。new Parent.num代码相当于new (Parent.num);new Parent().num相当于(new Parent()).num

6.闭包(内部函数可以访问其所在的外部函数中声明的参数和变量)

MDN上面修改文字大小尺寸的
function makeSizer(size) {
  return function() {
    document.body.style.fontSize = size + 'px';
  };
}

var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);

7事件循环

宏任务和微任务
宏任务:setTImeout、setInterval、setImmediate、i/o、UI render、script 整体代码
微任务:process.nextTick、promise、async/await(其实就是promise)、mutaionObserver

整体执行:执行宏任务,然后执行红任务产生的微任务,一直到微任务执行结束,结束之后再回到宏任务进行下一轮循环

8手写 Promise

9安全问题

1.xss跨站脚本攻击远离,原因:过于信赖客户端提交的数据,没有进行加密处理。处理办法: 只要是客户端提交的数据就应该进行相应的数据过滤。
2.csrf跨站请求伪造原理:原因:网页登陆之后,在没有关闭网页的情况下,收到别人的链接,这时候会利用客户端的cookie直接向服务器发送请求。
3.sql脚本注入原理,如何进行:利用现有程序,将sql命令注入到后台数据库引擎执行的能力,它可以通过web表单中输入恶意,sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到服务器执行恶意的sql命令。

其他

1.const 对象可以修改。原因:指向的指针是不可以修改的,但是指向指针的内容是可以修改的。
2.this指向,剪头函数是指向定义者,非箭头函数是指向调用者
3.es6新规范,object.assing、includes、find、object.keys等等

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值