-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
预解释
定义:
在当前的作用域中,JS代码执行之前,浏览器首先会默认的把所有带var和function的进行提前的声明或者定义,这种行为就叫做预解释。
预解释是浏览器内置的一种机制。
理解申明和定义:
声明(declare):var num; --->告诉浏览器在全局作用域中有一个num变量
定义(defined):num=12 ---->给变量进行赋值。
对于带var和function关键字的在预解释的时候操作还是不一样的。
var——在预解释的时候只是提前了声明function——在预解释的时候声明+定义都完成了
预解释只发生在当前的作用域下,例如:开始只对window下的进行预解释,在函数执行的时候再对函数中的进行预解释。
JS中内存的分类:
- 栈内存——用来提供一个供JS代码执行的环境--->作用域(全局作用域、私有的作用域)
- 堆内存——用来存储引用数据类型的值--->对象存储的是属性名和属性值,函数存储的是代码字符串
例:
1、
console.log(num);//undefined
var num=12;
console.log(num);//12
如果一个变量只是申明没有赋值,默认的值为undefined.
2、
fn(1,2);//3
function fn(num1,num2){
var sum=num1+num2;
console.log(sum);
}
补充:
console.log(函数名);——把整个函数的定义部分(函数本身)在控制台输出console.log(函数名());——把当前函数执行的返回结果输出
return后面是什么,返回值就是什么,如果没有return,默认返回值undefined。
Metadata
Metadata
Assignees
Labels
No labels