作用域以及类、实例

栈内存  js执行的环境  (作用域)

堆内存  存放代码的空间   存放方式     键值对的形式存     字符串的形式存

作用域的形成:

  浏览器天生有一个全局叫window

  函数执行的时候会形成一个私有的

作用域链:

  js执行代码之前,浏览器会给他一个全局作用域叫window,在window下会分两个模块 一个内存模块,一个执行模块。 内存模块 会找到所有关键字 var 和function ,并分配给他们一个内存地址;执行模块  浏览器从上到下执行   遇到变量会去内存地址查找这个变量是否存在,如果不存在就是xxx  is   not   defined ,如果存在就看有没有赋值,赋值了就直接操作,没有就去他的上一级的内存模块查找,直到window为止。没有赋值就是undefined。这种查找机制叫作用域链。

注:如果普通变量和函数变量名相同,最后保留函数变量

=赋值运算

    赋值运算     就是把后面的数据类型赋值给等号前面的变量。

    数据类型分两种情况

      1、基本数据类型   (number   boolean  string   null  undefined)直接将数据赋值给前面的变量

      2、引用(复合)数据类型 (object  array   function)将内存地址赋值给前面的变量

 object和json的区别

    1、长得一样 ,都是以键值对的形式书写,object的key值可以不加引号,但是json必须加

    2、object是前段的数据类型    json 是数据库存放的数据格式

 类和实例的关系

    1、每个类都有一个prototype的属性,属性是对象,里面有一个constructor的属性,属性值就是类本身

    2、每个实例对象都有一个__proto__的属性,属性是对象,它指向当前类的原型

 __proto__ 和prototype

  二者都是原型 ,前者是查找属性对的,后者是存放属性的 ,前者是给浏览器使用的,后者是给开发者使用

原文地址:https://www.cnblogs.com/gdqx/p/10250327.html