闭包

1、概念

闭包函数:声明在一个函数中的函数,叫做闭包函数。

闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。

2、特点

让外部访问函数内部变量成为可能;

局部变量会常驻在内存中;

可以避免使用全局变量,防止全局变量污染;

会造成内存泄漏(有一块内存空间被长期占用,而不被释放)

3、闭包的创建

闭包就是可以创建一个独立的环境,每个闭包里面的环境都是独立的,互不干扰。闭包会发生内存泄漏,*每次外部函数执行的时 候,外部函数的引用地址不同,都会重新创建一个新的地址。*但凡是当前活动对象中有被内部子集引用的数据,那么这个时候,这个数据不删除,保留一根指针给内部活动对象。

闭包内存泄漏为: key = value,key 被删除了 value 常驻内存中; 局部变量闭包升级版(中间引用的变量) => 自由变量;

61J5DEVB%~~MFS2CNNI$J0Z.png

结论: 闭包找到的是同一地址中父级函数中对应变量最终的值

内部对象

标准对象
typeof 123
"number"
typeof '123'
"string"
typeof true
"boolean"
typeof []
"object"
typeof NaN
"number"
typeof {}
"object"
typeof Math.abs
"function"
typeof undefined
"undefined"

1、Date

基本使用

var now = new Date();
now.getFullYear();// 年
now.getMonth(); //月 0~11月 老外跟我们想的不一样
now.getDate(); // 日
now.getDay(); // 星期几
now.getHours(); // 时
now.getMinutes(); // 分
now.getSeconds(); // 秒

now.getTime(); //时间戳 全世界统一
console.log(new Date(1606885547961)); //时间戳转为时间

转换

now = new Date(1606885547961);
Wed Dec 02 2020 13:05:47 GMT+0800 (GMT+08:00)

now.toLocaleString //注意,调用是个方法,不是一个属性
ƒ toLocaleString() { [native code]}

now.toLocaleString()
"2020/12/2 下午1:05:47"

now.toGMTString()
"Wed, 02 Dec 2020 05:05:47 GMT"

2、JSON

json是什么

早期,所有的数据传输习惯使用XML文件!

  • (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,
  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在javaScript 一切皆为对象(和C#,java一样),如何js的类型都可以用JSON来表示
格式:

  • 对象都用{}
  • 数组都用[]
  • 所有 键值对 都是用 key:value

JavaScript对象与JSON字符串的转换

var user = {
    name:'hunren',
    age:3,
    sex:'男'
}
//JavaScript对象转换为JSON字符串
var JsonUser = JSON.stringify(user);//{"name":"hunren","age":3,"sex":"男"}
//转换的两种方式
//JSON字符串转换为JavaScript对象
var obj = JSON.parse('{"name":"hunren","age":3,"sex":"男"}');

var obj1 = JSON.parse(JsonUser);

3、Ajax

简单介绍一下Ajax

  • 原生的js写法 xhr 异步请求
  • JQuey封装好的方法 $("#name").ajax("")
  • axios请求 (这个方便,轻型)
最后修改:2021 年 10 月 15 日
如果觉得我的文章对你有用,请随意赞赏