js基本语法的介绍:数据类型以及变量类型

本篇文章给大家带来的内容是关于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]  

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字符串并高亮?(附代码)

以上就是js基本语法的介绍:数据类型以及变量类型的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2743905.html

(0)
上一篇 2025年3月8日 03:12:59
下一篇 2025年3月8日 03:13:05

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论