重头再学JS(2)— 变量、作用域和内存问题

 

基本类型和引用类型

JS不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间,在操作对象时,实际上是操作对象的引用而不是实际的对象

传递参数

访问变量是有按值访问和按引用访问两种形式,而参数只能按值传递。

检测类型

typeof操作符是确定 string number boolean undefined的最佳工具
如果是 对象 或 null 时,都会返回“object”
instanceof 检测对象

变量可访问的范围

  • 什么全局作用域

    函数之外的执行环境。

  • 全局变量

    在全局作用域中用var关键字创建的变量

    访问范围:程序的任何地方​

  • 什么是局部作用域

    函数体内的执行环境

  • 局部变量

    函数定义的形参 以及 在 函数体中用var关键字定义的变量

全局执行环境为window对象,因为所有的全局变量和函数都是作为window对象的属性和方法创建的,某个环境中的代码执行完,该环境以及其中的所有变量和函数定义也就销毁了,但是全局环境直到应用程序退出,例如关闭网页时才销毁。

  • 作用域链

当访问一个变量时,会先从本作用域中去找这个变量,若找不到则向上一级作用域中去找,依次类推,就形成了一个作用域链。

垃圾收集

  • 标记清除

  • 引用计数

管理内存

 

猜你喜欢

转载自www.cnblogs.com/houfee/p/9839689.html