js原理和闭包

104 阅读1分钟
  • 变量提升
  • 当你下面使用var的时候会出现变量提升的情况
  • 已经声明但是没有赋值,给了一个初始值叫undefined;
  • 函数是一等公民
  • 声明的function会提升函数到最前面
  • 页面一加载的时候会先找有没有 var 和 function
  • 如果发现有var 就会把变量预定义为undefined如果发现有function 就会把function这个方法放在最前面
  • NaN not a number 表示不是一个数字
  • 使用isNaN方法来判断 是不是一个数字
  • 如果不是数字 就返回 true
  • 是数字就返回 false
  • 全局变量在页面关闭后被删除
  • 在函数里面没有使用let 或者 vara会变成一个全局变量局部变量:在函数内部声明的变量(必须使用var只能在函数内部访问它
  • 可以在不同的函数中使用名称相同的局部变量
  • 局部变量在函数运行以后被删除
  • 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期
  • 变量的作用域有两种全局作用域 局部作用域
  • 作用域链 首先会在当前的作用域内去变量对应的值
  • 如果找不到,会向上一层一层的去寻找