An example of differences between var and var in JavaScript variable declaration is as follows: javascriptvar

Source: Internet
Author: User

An example of differences between var and var in JavaScript variable declaration is as follows: javascriptvar

In this article, we will discuss the differences between var and no var for variable declaration in JavaScript. The scope of variable declaration in Js is in the unit of function, so we often see a way to avoid global variable pollution.

(function(){ // ... })();

In a function, the variables with var and without var Declaration are different. If var declares a local variable without var, the declared global variable can be used to expose the interface.
When declaring variables in the global scope, var and var look the same. We know that the declared global variables are the properties of the window. Are they the same, we use the feature query method provided by ECMAScrpit5 to identify the differences.

var fff = 2; window.ffa = 3; ffb = 4; this.ffc = 4; var ffftx = Object.getOwnPropertyDescriptor(window, 'fff'); //configurable:false,enumerable:true,value:2,writable:true var ffatx = Object.getOwnPropertyDescriptor(window, 'ffa'); //configurable:true,enumerable:true,value:2,writable:true var ffbtx = Object.getOwnPropertyDescriptor(window, 'ffb'); //configurable:true,enumerable:true,value:2,writable:true var ffctx = Object.getOwnPropertyDescriptor(window, 'ffc'); //configurable:true,enumerable:true,value:2,writable:true

Through the above, we found that there was still a difference. We used the delete attribute to verify that the attribute with the configuration property of false could not be deleted. That is, the attributes of global objects declared through the variable var cannot be deleted. We also find that the Global Object Attributes created with the function declaration cannot be deleted.

Delete fff; // delete ffa cannot be deleted; // delete ffb can be deleted; // delete ffc can be deleted; // delete

The conclusion is that the declaration of global variables with and without var is different.

It is legal and harmless to repeatedly declare statements using var statements. If the statement is declared repeatedly and has a value assignment, it is no different from the general value assignment statement. If you try to read a variable that has not been declared, Js will report an error.
In the function scope of JavaScript, declared variables or internal functions are visible in the function body. This means that the function may be available before being defined. There are two methods to define a function. One is a function definition expression and the other is a function declaration statement.

// Function Definition expression var fns = function () {//...}; // function declaration statement function fns (){//...}

The function declaration statement is "advanced" to the top of the external script or external function scope. Therefore, the function declared in this way can be called by defining the previous code. In Function Definition expressions, the declaration of variables is advanced, but the assignment of values to variables is not advanced. Therefore, functions defined in expressions cannot be called before function definition.

(Function () {testa (); // print testa testb (); // error: undefined is not a function console. log (testc); // undefined. If it is moved above, function testa () {console. log ("testa");} var testb = function () {console. log ("tesb");} var testc = "testc ";})();

Of course, we declare variables and functions, which must comply with the basic rules, and declare variables and functions in advance.


What is the difference between adding var in javascript and without declarative variables?

You can declare a global variable without declaring a variable in the var function.

The differences between var and var are used in parameter declaration of js functions.

Var is not declared before function parameters. You are wrong.
If you believe it is correct, please give the code you have seen and test whether you can run it in a browser first?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.