笔记

  

1.什么是作用域
是浏览器给js的一个生存环境(也叫栈)

2.什么是变量
可以改变的量 往往用英文字母代替变量 并且区分大小写
变量就是一个容器 起到临时存储数据的作用 通过等号赋值

3.堆内存
就是存放代码块的 存放形式有两种 一种是对象以键值对的形式存放
另一种就是函数 以字符串的形式存放

4.栈内存
函数执行的时候首先会开辟一个新的内存空间 叫栈内存(也叫环境或作用域)

5.基本数据类型 引用数据类型 区别
基本数据类型:undefined null boolean number string
引用数据类型:object array function
基本数据类型就是简单的操作值
引用数据类型会开辟一个新的内存空间把内存空间的地址赋值给变量

6.变量提升
js执行前,浏览器会给一个全局作用域window
window分两个模块 一个存储模块 一个执行模块
存储模块 找到所有的var和function关键字 给这些变量添加内存地址
执行模块 代码从上到下执行 遇到变量就回去存储模块查找 有和没有
有,就看你赋值没有 赋值了就是后面的值 没有赋值就是undefined
如果没找到 结果就是xxx is not defined

7.作用域链
函数内部的变量被使用时,首先会在自己的私有作用域下查找是否有这个变量,
有就直接使用,没有就会向他的上一级查找,父级就使用父级的,父级没有就会以此继续向
上查找直到window为止,window有就使用没有就is not defined。这种查找机制我们叫作用域链。

8.原型链
Duixiang.shuxing的时候 首先看这个属性是不是私有的 私有的就直接使用
如果私有的属性没有 就找公有的 公有的有就使用 没有就按照__proto__找他
的类上有没有 直接找到基类object 如果object没有就undefined了 这种查找机制
叫原型链

9.原型分析
1)首先类身上天生自带一个prototype的属性 属性值是对象
2)prototype 对象天生有一个constructor属性 属性值是类本身
3)实例天生有一个__proto__指向自己类的原型

10.this
this是js的一个关键字 指定一个对象然后去替代他 分两种情况
函数内的this和函数外的this 函数内的this指向行为发生的主体 函数外的this都指向window
函数内的this跟函数在哪定义没有关系只跟执行时的主体有关 带“.”的主体就是.前面的 不带.
就是window 找主体的时候就看这个函数(方法) 带不带“.”如果函数和方法执行了带“.”那么this
就指向“.”前面的对象 如果不带“.”就指向window 自执行函数里面的this 都指向window

原文地址:https://www.cnblogs.com/bogeyijiu/p/10154086.html