JavaScript 闭包?

Js 基本数据类型有哪些
基本类型:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、
未定义(Undefined)、Symbol(独一无二的值)。
引用数据类型:对象(object)、数组(Array)、函数(Function)。
Ajax 如何使用
(Ajax:通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。)
一个完整的 AJAX 请求步骤:
  1. 创建 XMLHTTPRequest 对象
  2. 使用 open 方法创建 http 请求,并设置请求地址 xhr.open("get / post(发送请求)",url,async,true(异步)/ false(同步))
  3. 设置发送的数据,用 send 发送请求
  4. 接收相应请求,并且执行回调,响应数据
如何判断一个数据是 NaN
  1. NaN 不是一个数字且数据类型为 number,而且不等于自身==>可直接采用内置方法 isNaN   
  2. 利用 NaN 是唯一一个不等于任何自身的特点
  3. 利用 ES6 中提供的 Object.is()方法(判断两个值是否相等)
闭包是什么?有什么特性?对页面会有什么影响
闭包可以简单理解成:定义在一个函数内部的函数。其中一个内部函数
在包含它们的外部函数之外被调用时,就会形成闭包。
特点:
1.函数嵌套函数。
2.函数内部可以引用外部的参数和变量。
3.参数和变量不会被垃圾回收机制回收。
使用:
1.读取函数内部的变量;
2.这些变量的值始终保持在内存中,不会在外层函数调用后被自动清除.
优点:
1:变量长期驻扎在内存中;
2:避免全局变量的污染;
3:私有成员的存在 ;
缺点:闭包会使得函数中的变量都被保存在内存中, 内存消耗很大 ,所以不能滥用闭包,否则会造成 网页的性能问题 ,在IE中可能导致 内存泄露 。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
Js 中常见的内存泄漏:
  1. 意外的全局变量
  2. 被遗忘的计时器或回调函数
  3. 脱离 DOM 的引用
  4. 闭包
Let var const 的区别
  • Var 声明的变量会挂载在 window 上,而 let 和 const 声明的变量不会
  • var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。
  • 同一作用域下 var 可以声明 同名变量 ,let 和 const不可以, Let 和 const 声明会形成 块级作用域
  • var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的遍历。const和let不允许重复声明变量。
  • 在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为暂时性死区。使用var声明的变量不存在暂时性死区。
  • 初始值设置: 在变量声明时,var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。
  • 指针指向: let和const都是ES6新增的用于创建变量的语法。 let创建的变量是可以更改指针指向(可以重新赋值)。但const声明的变量是不允许改变指针的指向。
Promise 来解决什么问题?
  • 回调地狱,代码难以维护。
  • promise 可以支持多并发的请求,获取并发请求中的数据

请简述原型/原型链/(原型)继承

原型: 任何对象实例都有一个原型,也叫原型对象,这个原型对象由对象的内置属性_proto_指向它的构造函数的 prototype 指向的对象,即任何对象都是由一个构造函数创建的,但是不是每一个对象都有 prototype,只有方法才有 prototype。

原型链:当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到,就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就会形成一个链式结构,我们称为原型链。

原型继承是 js 的一种继承方式,原型链作为实现继承的主要方法,其基本
思路是利用原型让一个引用类型继承另一个引用类型的属性和方法,
原型继承:利用原型中的成员可以被和其相关的对象共享这一特性,可
以实现继承,这种实现继承的方式,就叫做原型继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值