This article brings you an introduction to the basic syntax of js: data types and variable types, which have certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
1. Unchangeable original values (stack data) (five)
Number (number), string (string), Boolean value (boolean), undefined, null
Among them; undefined means undefined, and null means empty. The difference between them is that null has a value, but this value is an empty value, while undefined means undefined and has no value at all. null is generally used as a placeholder.
var a = 4; var b = a; a = 10; console.log(b);//4//原始值是把一个值a放到另一个值b里面,改了第一个值a,第二个之值b不变
2. Reference value (heap data)
Array, object, function
Note: As long as a variable is assigned a value, the memory will be re-applied
var arr = [1, 2]; var arr1=arr; arr.push(3); console.log(arr1); //[1, 2, 3] //引用值时把第一个值放到第二个值里面,改变第一个值,第二个值也改变 //引用值是在栈内存里面存放堆的地址,拷贝的是地址,所以改变了arr,实际上是改变了arr指向的地址内存放的内容,而arr和arr1指向同一个地址,故arr1也跟着变
Address | Variable | Stored value |
0x0001 | arr | [1,2] [1,2,3] <--arr.push(3) |
0x0002 | arr1 | ##0x0001 |
Address | Variable | Storage value | |||||||||||||||||||||
0x0001 | arr | [1,2] | |||||||||||||||||||||
##arr1 | 0x0001 | ||||||||||||||||||||||
arr | [1,3 ] |
地址 | 变量 | 存储值 |
0x0001 | a (1) | n:0x0002 n:0x0004 ---(1) |
0x0002 | -n- (1) | 1 |
0x0003 | b | 0x0001 |
0x0004 | n (1) | 0x0005 |
0x0005 | a (1) | m:0x0006 (2) |
0x0006 | m (2) | 1 (2) |
var a = {n:1}; var b = a; a={m:1};//a重新赋值,换了一个房间,b仍然指向原来的房间(地址) a.n =a; console.log(a);//{m:1,n:{m:1,n:{..}}}//一直循环 console.log(b);//{n:1}
相关推荐:
The above is the detailed content of Introduction to js basic syntax: data types and variable types. For more information, please follow other related articles on the PHP Chinese website!