<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>预解释</title>
</head>
<body>
<pre>
<script type="text/javascript">
// js中数据类型:
// 基本数据类型
// number string boolean null undefined
// var num = 12;
// 引用数据类<a型
// object :{} [] /^$/ Dale
// function
// var obj = {name:"珠峰培训",age:7};
// function fu() {
// console.log("勿忘初心方得始终");
// }
// 1.当浏览器加载html的时候 首先会提供一个恭全局JS代码执行的环境 -> 全局作用域(global/window)
// obj.age = 8 ; 首先通过地址xxxfff000找到对应的空间,然后把空间中的age属性名对应的属性值修改为8
console.log(fn) // 把正割函数的定义部分(函数本身)在控制台输出
console.log(fu()) // 把当前函数执行的返回结果(return后面写的是啥,返回值就是啥,如果没有return,默认返回值是undefined)
// 2.预解释(变量提声)
// 在当前的作用域当中, JS代码执行之前 浏览器首先会默认的把所有带 var 和 function 的进行提前的声明或者定义
// 2.1.理解声明和定义
// var num = 12;
// 声明 (declare); var num; -> 告诉浏览器在全局作用域中有一个num的变量了 如果一个变量只是声明了 没有赋值 默认值是undefined
// 定义 (define); num = 12 ; -> 给我们的变量进行赋值
// 对于带var和function关键字的在于解释的时候操作还是不一样的
// var -> 在与解释的时候只是提前的声明
// function -> 在预解释的时候提前的声明 + 定义都完成了
// 预解释只发生在当前的作用域下 , 例如开始只对Window下进行预解释,只有函数执行的时候才会对函数中的进行预解释
console.log(num); // undefined
var number = 12;
var obj = {name: "LDH", age: 7};
console.log(num); // 12;
fn(100, 200); // 可以在上面执行,因为预解释的时候声明和定义就已经完成了;
function fu(num1, num2) {
var total = num1 + num2;
return total; }
// js中内存的分类
// 栈内存堆内存
// 堆内存:用来存储引用数据类型的值->对象存储的是属性名和属性值,函数存储的是代码字符串
// 栈内存:用来提供一个供JS执行的环境 -> 作用域(栈内存) (全局作用域,私有作用域)
</script>
</pre>
</body>
</html>
01-预解释
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...