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() // 不执行
结果: