What this article brings to you is what does the pre-interpretation of js mean? A brief analysis of the meaning of pre-interpretation in js has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
I often heard pre-explanation and pre-explanation before, so what exactly is pre-explanation? Let’s talk briefly about it today.
Pre-interpretation is also what we usually call variable declaration. Before the js code is executed in the current scope, the browser will first declare or define all the var and function in advance by default. This is It can be called pre-interpretation.
So what is a statement and what is a definition?
Declaration: For example,
var test
Then this is telling the browser that we have declared a variable called test in the global scope.
Definition: For example,
test=2
gives The variables we declare are assigned values
For those with the var and function keywords, they are also different in the pre-interpretation. Those with var are only declared in advance in the pre-interpretation, while function must be declared and defined in the pre-interpretation. This is why we said above that "declare or define in advance"
For example Example
var test = 2 var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
The above code is pre-interpreted when executed from top to bottom in the global scope. First, declare a test, declare an obj, and then declare and define a foo. So will var test2 in foo be pre-interpreted in the global scope? Of course it won't work. We also said above that "js is executed in current scope" test2 is in the scope of foo, and it will only be pre-interpreted when foo is executed. Therefore, pre-interpretation only occurs in the current scope, and only when the function is executed will it be pre-interpreted.
So we may encounter some such questions when we go out for interviews
console.log(test ) foo(5) var test = 2 console.log(test ) var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
So what is the printed content?
console.log(test )//undefined foo(5)//5 var test = 2 console.log(test )//2 var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
Because at the beginning, test was only declared, but it was not defined, so the first console was undefind, but then when the second console came, 2 had been assigned to test, so the second console has value. And foo is a function. During pre-interpretation, it must be declared and defined, so foo(5) has value.
Related recommendations:
Pai Pa Pa JavaScript pre-explanation_javascript skills
Detailed explanation of conditional comments in JScript_javascript Skill
The above is the detailed content of What does pre-interpretation of js mean? A brief analysis of the meaning of pre-interpretation in js. For more information, please follow other related articles on the PHP Chinese website!