*必看\超详细 (&前端面试题& )

一、数据类型

       基本数据类型和引用数据类型:

基本数据类型:Number 、String 、Boolean、Null、Undefined

引用数据类型:Object、Array、Function、Data  -- Es6(Symbol)

二、typeof 和instanceof 区别?

js是一个弱类型的语言,所以一般想知道当前变量是哪一种类型必须判断类型,都知道判断类型的两种方式:typeof、 instanceof它们各有缺点:typeof适用于基础数据类型判断,引用类型判断都是object。 instanceof 判断一个实例是否属于某种类型,但严重存在原型继承,所以判断最好在两个对象之间

三、如何判断一个变量是不是数组?

array.isArray判断,返回true,说明是数组

instanceof  Array判断,返回true。说明是数组

使用Object.prototype.toString.call判断,如果值是[object Array],说明是数组

通过constructor来判断,如果是数组,那么arr.constructor === Array(不准确因为我们可以指定obj.constructor = Array)

四、跨域的几种方法?

通过jsonp跨域

JSONP包含两部分:回调函数和数据。 
回调函数:当响应到来时要放在当前页面被调用的函数。 
数据:就是传入回调函数中的json数据,也就是回调函数的参数了。

使用window.postMessage方法来跨域(不常用)

 window.postMessage(message,targetOrigin) 方法是html5新引进的特性,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源(可实现跨域),目前IE8+、FireFox、Chrome、Opera等浏览器都已经支持window.postMessage方法。 
  message:为要发送的消息,类型只能为字符串; 
  targetOrigin:用来限定接收消息的那个window对象所在的域,如果不想限定域,可以使用通配符 “*”。

使用跨域资源共享(CORS)来跨域

CORS:一种跨域访问的机制,可以让AJAX实现跨域访问;CORS允许一个域上的网络应用向另一个域提交跨域AJAX请求。 
服务器设置Access-Control-Allow-Origin HTTP响应头之后,浏览器将会允许跨域请求. 
就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。

使用Web sockets来跨域

web sockets: 是一种浏览器的API,它的目标是在一个单独的持久连接上提供全双工、双向通信。(同源策略对web sockets不适用)

web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

五、箭头函数与普通函数的区别?

箭头函数没有this不能使用new  不能绑定arguments,用rest参数...解决

箭头函数没有原型属性  

箭头函数不能当做Generator函数,不能使用yield关键字

箭头函数不能换行.

六、let和var的区别?

1、作用域不同

var是函数作用域,let是块作用域。

let不能在定义之前访问该变量,但是var可以。

let必须先声明,在使用。而var先使用后声明也行,只不过直接使用但没有定义的时候,其值是undefined。var有一个变量提升的过程,当整个函数作用域被创建的时候,实际上var定义的变量都会被创建,并且如果此时没有初始化的话,则默认为初始化一个undefined

在函数中声明了var,整个函数内都是有效的,比如说在for循环内定义的一个var变量,实际上其在for循环以外也是可以访问的

而let由于是块作用域,所以如果在块作用域内定义的变量,比如说在for循环内,在其外面是不可被访问的,所以for循环推荐用let.

七、实现防抖的思路?

八、如何实现链式操作?

链式操作就bai是分步骤地对jQuery对象实du现各种操作,zhi举个dao栗子:

$("#Test").css('color','red').show(200).removeClass('style');

上面的例子就是链式zhuan操作,在一行shu代码里,对id为Test的对象进行了三项操作:先设置其字体颜色为红色,再显示对象,最后移除对象的“style”这个样式。

 九、受控组件--非受控组件?

受控组件:

1每当表单的状态发生变化时,都会被写入到组件的state
2、在受控组件中,组件渲染出的状态与它的valuechecked prop相对应
3react受控组件更新state的流程.

非受控组件:

1、如果一个表单组件没有value prop就可以称为非受控组件
2、非受控组件是一种反模式,它的值不受组件自身的state或props控制
3、通常需要为其添加ref prop来访问渲染后的底层DOM元素

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值