作用域

81 阅读2分钟
  1. 常用的系统函数
  • parseInt()数字会被取整
  • parseFloat()会把字符串转成浮点数,会把12.20转成12.2
  • isNaN: NaN not a number 表示不是一个数字,使用isNaN方法来判断是不是一个数字,如果不是数字就返回true,是数字就返回false。
  1. 全局变量 全局变量在页面关闭后被删除,在函数里面没有使用let 或者 var,a会变成一个全局变量,局部变量:在函数内部声明的变量(必须使用var),只能在函数内部访问它,可以在不同的函数中使用名称相同的局部变量。局部变量在函数运行以后被删除。
  • 变量提升 当你下面使用var的时候会出现变量提升的情况,var a => a = undefined (已经声明了但是没有赋值,给了一个初始值叫做undefined )
    let 不存在变量提升,不能在还没有初始化的时候使用变量,否则就给报错 下面的代码就不会被执行,let不能够重复定义。
    函数是js里面的一等公民,声明了function会提升函数到最前面,页面一加载的时候会先找有没有 var 和 functio,如果发现有var 就会把变量预定义为undefined,如果发现有function 就会把function这个方法放在最前面。
  • 作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。
    变量的作用域有两种,全局作用域,局部作用域,a是全局变量具有全局作用域,和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最外层函数和在最外层函数外面定义的变量拥有全局作用域,所有未定义直接赋值的变量自动声明为拥有全局作用域。
  • 作用域链 可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链。作用域链 首先会在当前的作用域内去变量对应的值,如果找不到,会向上一层一层的去寻找。
  • 闭包 闭包的用途可以读取函数内部的变量让这些变量的值始终保持在内存中。