JS预解释

 1.声明(declare)  var num    // 告诉浏览器在全局作用域中有一个num变量

  定义(defined) num = 12  // 给我们的比变量进行赋值

 2.var:在预解释时只是提前的声明,默认undefined

 function: 在预解释时提前的声明 + 定义都完成了

3.JS内存分类

 栈内存: 用来提供一个供js代码执行的环境 ---> 作用域 (全局和私有) 

 堆内存: 用来存储引用数据类型的值 

      1.对象: 存储的是属性名属性值

      2.函数: 存储的是代码字符串

代码:

fn()   // 2

function fn() {
  console.log(1)
}
fn()  // 2
var fn = 10
fn()  // fn=10  变量fn=10,不是function函数,会报 TypeError: fn is not a function,停止执行

function fn() {
  console.log(2)
}
fn()  // 不执行

结果:

路漫漫其修远兮,吾将上下而求索
原文地址:https://www.cnblogs.com/jsanntq/p/9936127.html