• jsday6作用域01


    1.作用域

    • 一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是或者名字的作用域
    • 作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了命名冲突
    • 全局作用域:整个script标签或者是一个单独的js文件
    • 局部作用域:在函数内部,这个代码的名字只在函数内部起效果和作用

    2.变量作用域

    • 全局变量:在全局作用域下的变量,在全局下都可以使用
    • 如果在函数内部没有声明直接赋值的变量也属于全局变量
    • 局部变量:在局部作用域下的变量,只能在函数内部使用
    • 函数的形参也可以看做是局部变量
    • 执行效率:
      • 全局变量只要浏览器关闭的时候才会销毁,比较占内存资源
      • 局部变量当我们程序执行完毕就会销毁,比较节约内存资源

    3.作用域链

    • 只要是代码,就至少有一个作用域
    • 写在函数内部的局部作用域
    • 如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域
    • 根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称为作用域链

    4.预解析

    • js引擎运行js 分为两步:预解析 、代码执行
      • 预解析:js引擎会把js里面所有的var还有function提升到当前作用域的最前面
      • 代码执行:按照代码书写的顺序从上往下执行
    • 预解析分为变量预解析(变量提升)和函数预解析(函数提升)
      • 变量提升:把所有的变量声明提升到当前的作用域最前面,不提升赋值操作
      • 函数提升:把所有的函数声明提升到当前作用域的最前面,不调用函数

    5.对象

    • 在js中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,l例如字符串、数值、数组、函数等
    • 对象由属性方法组成
      • 属性:事物的特征,在对象中用属性来表示(常用名词)
      • 方法:事物的行为,在对象中用方法来表示(常用动词)

    6.创建对象的三种方式

    • 用字面量创建对象
      • 对象字面量:花括号{ }里面包含了表达这个具体事物(对象)的属性和方法
        • 里面的属性或者方法采取键值对 键 (属性名): 值 (属性值)
        • 多个属性或者方法中间用逗号隔开
        • 方法冒号后面跟的是一个匿名函数
      • 使用对象
        • 调用对象的属性:采取 对象名.属性名 .
        • 调用属性还有一种方法 对象名['属性名']
      • 调用对象的方法: 对象名.方法名()
    • 利用new Object创建对象
      • 利用等号赋值的方法,添加对象的属性和方法
      • 每个属性和方法之间用分号结束
    • 利用构造函数来创建对象
      • 把对象里面一些相同的属性和方法抽象出来封装到函数里面
  • 相关阅读:
    STM32下载程序后不能运行
    (转载)时序约束的基本方法
    PLL失锁的问题
    算法与硬件构架的关系
    构建低成本、高度可配置的桥接解决方案:在嵌入式设计中采用基于D-PHY的MIPI标准外设
    SOLDERMASK_TOP不显示
    Allegro brd文件更新封装及焊盘方法
    Cadence Allegro光绘文件生成技巧
    shape合并
    allegro 如何 敷铜(铺铜),并去掉敷铜岛
  • 原文地址:https://www.cnblogs.com/lzy2000----/p/15095762.html
Copyright © 2020-2023  润新知