视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
js基本语法的介绍:数据类型以及变量类型
2020-11-27 19:32:27 责编:小采
文档


本篇文章给大家带来的内容是关于js基本语法的介绍:数据类型以及变量类型,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一、不可改变的原始值(栈数据)(五个)

数字(number),字符串(string),布尔值(boolean),undefined,null

其中;undefined是未定义的意思,而null是空的意思,他们俩的区别在于,null有值,不过这个值是空值,而undefined是未定义,完全没有值的意思。null一般用作占位。

var a = 4;
var b = a;
a = 10;
console.log(b);//4//原始值是把一个值a放到另一个值b里面,改了第一个值a,第二个之值b不变

二、引用值(堆数据)

数组(array),对象(object),函数(function)

注意:只要对变量进行赋值就会进行内存的重新申请

var arr = [1, 2];
var arr1=arr;
arr.push(3);
console.log(arr1); //[1, 2, 3]
//引用值时把第一个值放到第二个值里面,改变第一个值,第二个值也改变
//引用值是在栈内存里面存放堆的地址,拷贝的是地址,所以改变了arr,实际上是改变了arr指向的地址内存放的内容,而arr和arr1指向同一个地址,故arr1也跟着变

地址

变量

存储值

0x0001

arr

[1,2] [1,2,3] <--arr.push(3)

0x0002

arr1

0x0001

var arr = [1,2];
var arr1 = arr;
arr = [1,3];
console.log(arr1);//[1,2]; 
//arr = [1,3]实际上是在堆内另建了一个地址,arr指向了新的地址,而arr1还是指向原来的地址,故arr1值不变

地址

变量

存储值

0x0001

arr

[1,2]

0x0002

arr1

0x0001

0x0003

arr

[1,3]

要避免使用连续赋值符号:下面举两个例子

 a = {n:1 b == a={m:1console.log(b);

1.var a = {n:1},在内存中申请两个地址,分别存放a和n;

2.var b = a;申请一个地址存放b,值指向a的地址;

3.a.n= a={m:1};

(1)(这里对变量进行了赋值,因此要重新申请内存)先申请了内存地址n(0x0004)和a(0x0005);由于n值占用了新的内存,故0x0001处 存储值由n:0x0002变为n:0x0004;

(2)赋值;a={m:1},申请m地址(0x0006),

因此:a : {m:0x0006}--->{m:1}

   b: {0x0001}--->{n:0x0004}---->{ n:0x0005}---->{n:{m:0x0006}}--->{n:{m:1}}

地址

变量

存储值

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}

相关推荐:

js常用的正则表达式的用法小结

js如何格式化xml字符串并高亮?(附代码)

下载本文
显示全文
专题