IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> *必看 |超详细 (&前端面试题& ) -> 正文阅读

[JavaScript知识库]*必看 |超详细 (&前端面试题& )

一、数据类型

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

基本数据类型: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元素

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:38:44  更:2021-07-28 07:39:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 3:14:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码