1. Embracing JavaScript
The once unknown JavaScript has doubled in value with the popularity of AJAX. Now JavaScript is no longer just a dispensable auxiliary tool in WEB development, but even With the dedicated position "JavaScript Engineer", even if you are just a WEB backend development programmer, you must know JavaScript. At least in some relevant job requirements, you can see the words "Familiarity with JavaScript is preferred" . I even want to tell you that you will be able to develop desktop software with JavaScript, thanks to another development model of Adobe AIR, which is to develop AIR with HTML CSS JavaScript.
2. Topics of value types and reference types
With the intervention of some friends who have basic knowledge of large-scale object-oriented languages, they try to use JavaScript to simulate various characteristics of object-like objects. Although some simulations seem far-fetched, they also let us see the power and flexibility of JavaScript. This article will not discuss JavaScript object-oriented programming technology for the time being. Let’s talk about the two types of variables in JavaScript: value types and reference types. This usually reminds you of the “stack”. There are also related concepts of “reference address” or “pointer”. If you have programmed in Java or C# Experienced people believe that these two types are familiar. Here are some examples of how these two types are reflected, used and paid attention to in JavaScript.
3. What are JavaScript value types and reference types?
(1) Value types: numeric, Boolean, null, undefined.
(2) Reference type: object, array, function.
4. How to understand value types and reference types and examples
We can use "chain store" and "chain store key" to understand it. I don't know if the following metaphor is appropriate. ,^-^.
(1) Value type understanding: The exchange of variables is equivalent to opening a new branch in a new place in accordance with the chain store's standards (the unified store is understood to be the same variable content), so that the newly opened store is consistent with other old stores. The stores are unrelated to each other and operate independently.
[Value type example]
function chainStore()
{
var store1='Nike China';
var store2=store1;
store1='Nike U.S.A.';
alert(store2); //Nike China
}
chainStore();
//When passing a value type (can also be called a basic type) store2 to another variable (assignment), a new memory space is actually allocated, so the value of store1 is changed. The value has no effect on store2 because it is not like a reference type. The exchange of variables actually exchanges the address of the same content.
(2) Reference type understanding: The exchange of variables is equivalent to copying the key (variable reference address) of an existing store to another boss. At this time, the two bosses manage a store at the same time. store, the actions of two owners may have an impact on the operation of a store.
[Reference type example]
function chainStore()
{
var store1=['Nike China'];
var store2=store1;
alert(store2[0]); //Nike China
store1[0] ='Nike U.S.A.';
alert(store2[0]); //Nike U.S.A.
}
chainStore();
//In the above code, store2 is assigned only once, In theory, its value has been determined, but later by rewriting the value of store1, it was found that the value of store2 has also changed. This is the characteristic of the reference type, and it is what we should pay attention to.