• 面向对象--理解面向对象须知;


    第一个问题:什么是作用域???

    第二个问题:作用域在什么情况下会形成???

    第三个问题:什么是变量提升及作用域链???

    第四个问题:“=”的 理解???

    第五个问题:object和json的区别???

    第六个问题:object对象的定义???

    首先我们要知道作用域是什么?作用域也是我们常说的栈内存,栈内存又是什么呢?js代码执行的环境就是栈内存;

    当然,还有一个堆内存,堆内存的作用是什么?存放代码块的空间,当函数代码执行或引用数据使用时,他们的代码块

    就存放在堆内存中,函数以字符串的形式存放;引用数据类型用键值对的形式存放。

    第二个问题:什么情况下会形成作用域???第一,浏览器天生就有一个作用域,全局作用域(window);第二:函数执行的

    的时候会形成一个私有的作用域。

    第三个问题:什么是变量提升及作用域链???变量提升也就是预解释,什么意思呢?就是在JS代码在执行之前,浏览器会

    给他一个全局作用域(window),在window下分为了两个模块,一个是内存模块,一个是执行模块,内存模块会找到所有带

    var和function的关键字提前进行变量声明,然后就会给每个变量分配一个内存地址,在执行模块开始执行时,如果遇到自己

    作用域下的变量就会通过内存地址去查找变量的存在,如果有就直接操作,没有就向他的上一级作用域内存模块查找,如果有直接

    操作,没有就继续向上查找,直到window。这种查找的方式叫做作用域链。

    第四个问题:“=”的 理解???

    关于“=”,他的意义不在于像数学中的=一样是1+1=2;他的运算方式是从右往左的赋值运算;提到运算,说明这并不是一个单纯的“=”。

    先说运算:我们可以声明一个变量并给他赋值,如何操作?var a=12;这句代码的意思是将12赋值给变量a;也就是说=后面的数据赋值

    给前面的变量;

    再说“=”后面的数据,=后面的数据类型不单单是数字这么简单,它分为两种数据类型;

    第一种:基本数据类型(number 、string、boolean、null、undefined);

    第二种:引用数据类型(array、function、.....)

    第一种数据类型是可以直接赋值的,可以直接把这些数据给前面的变量,但是第二种数据类型就没有这么单纯,我们拿数组举例,当变量

    =后面的数据类型是数组时,数组就会开辟一个堆内存,将数组的内容存在里面,浏览器会给这个堆内存一个内存地址,然后把这个内存地址

    赋值给=前面的变量。

    第五个问题:object和json的区别???

    首先,他们长得都一样,也就是书写方式都是键值对的形式存在的,object的属性名可以不加引号,json必须加的;其次object是前端的数据类型,

    json是数据库的数据类型。

    第六个问题:object对象的定义???

    关于对象的定义,其方式就是我们直接用字面量的方式定义,直接书写一个对象;还有类的实例;

    说到类的实例,也就是Object的子类(RegExp、Math、Array、String...)实例的一些子对象。

  • 相关阅读:
    css的一些属性及其属性值
    HTML基本标签
    JQuery
    js中的Dom事件模型以及表格方面等内容
    Alpha的过程总结
    数独+GUI界面
    数独
    调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛、华为杯研究生作品赛、全国大学生服务外包赛等各类全国性大学生信息化相关的竞赛平台的历届作品
    本学期高级软件工程课程的实践项目的自我目标
    高级软件工程第八次作业:“两只小熊队”团队作业-5
  • 原文地址:https://www.cnblogs.com/qinlinkun/p/10255759.html
Copyright © 2020-2023  润新知