社区
JavaScript
帖子详情
String类型是没有固定大小的原始类型?
低头思蚊香
2012-04-07 05:52:01
在《JavaScript高级程序设计》第17页
原话是“String类型的独特之处在于,它是唯一没有固定大小的原始类型。”
String原始类型不是存储在栈中的吗?那不是应该是固定大小的?
谁能给出代码证明一下,String原始类型是可变的
...全文
163
10
打赏
收藏
String类型是没有固定大小的原始类型?
在《JavaScript高级程序设计》第17页 原话是“String类型的独特之处在于,它是唯一没有固定大小的原始类型。” String原始类型不是存储在栈中的吗?那不是应该是固定大小的? 谁能给出代码证明一下,String原始类型是可变的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
低头思蚊香
2012-04-08
打赏
举报
回复
[Quote=引用 9 楼 的回复:]
第二版29页
ECMSScript中的字符串是不可变的,字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
[/Quote]
已经懂了,谢谢帮我查,可惜我看的是第一版所以没有找到这句话。。
Acesidonu
2012-04-08
打赏
举报
回复
第二版29页
ECMSScript中的字符串是不可变的,字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
低头思蚊香
2012-04-08
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
这话的意思是 在语法层面 string可以初始化为任意长度的字符串 这跟存储在堆中或者是栈中没有关系
如果你觉得因为可能造成栈溢出而认为string长度有限制 那存储在堆中也是可能溢出的 毕竟内存是有限的
如果你觉得栈中的类型一定得有长度限制 那也是不对的 c++中任意类的实例都可以存储在栈中 难道c++中对类实例的大小有限制?
[/Quote]
还有堆空间由操作系统管理和分配,是不会溢出的,你说的是内存资源耗尽
低头思蚊香
2012-04-08
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
这话的意思是 在语法层面 string可以初始化为任意长度的字符串 这跟存储在堆中或者是栈中没有关系
如果你觉得因为可能造成栈溢出而认为string长度有限制 那存储在堆中也是可能溢出的 毕竟内存是有限的
如果你觉得栈中的类型一定得有长度限制 那也是不对的 c++中任意类的实例都可以存储在栈中 难道c++中对类实例的大小有限制?
[/Quote]
我理解成运行时长度可变了。。
knightzhuwei
2012-04-08
打赏
举报
回复
这话的意思是 在语法层面 string可以初始化为任意长度的字符串 这跟存储在堆中或者是栈中没有关系
如果你觉得因为可能造成栈溢出而认为string长度有限制 那存储在堆中也是可能溢出的 毕竟内存是有限的
如果你觉得栈中的类型一定得有长度限制 那也是不对的 c++中任意类的实例都可以存储在栈中 难道c++中对类实例的大小有限制?
低头思蚊香
2012-04-08
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
1楼和2楼正好说的正好是反的,要我信谁的。。
我怎么没看出来是反的啊
[/Quote]
1楼说的连对象和对象的引用都没搞清楚
knightzhuwei
2012-04-08
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
1楼和2楼正好说的正好是反的,要我信谁的。。
[/Quote]
我怎么没看出来是反的啊
低头思蚊香
2012-04-08
打赏
举报
回复
1楼和2楼正好说的正好是反的,要我信谁的。。
Acesidonu
2012-04-07
打赏
举报
回复
string不可变,不同的字符串通过不同的指针引用来使用。
wzhiyuan
2012-04-07
打赏
举报
回复
string本质上应该存的是指针,所以没有分配大小,内容可任意长
JS中的
原始
数据
类型
(基础数据
类型
)和 引用数据
类型
文章目录js的数据
类型
划分方式为
原始
数据
类型
(基础数据
类型
)和 引用数据
类型
两种
类型
的...
原始
数据
类型
:直接存储在栈(stack)中的简单数据段,占据空间小,
大小
固定
,属于被频繁使用的数据,所以存储在栈中; 引
前端面试题笔记-5-
原始
数据
类型
与引用数据
类型
有什么区别
原始
数据
类型
存储在栈中,占空间小,
大小
固定
,属于频繁使用的数据。 引用数据
类型
存储在堆中,占空间大,
大小
不
固定
,属于不频繁使用的数据。 2. 传值方式不同
原始
数据
类型
按值传递,无法改变一个
原始
数据
类型
...
前端常见面试问题:js
原始
数据
类型
和引用数据
类型
区别 1
1.
原始
数据
类型
包括:Number.
String
. Boolean. Null. Undefine. 2.引用数据
类型
包括:对象. 数组. 函数 3.存储位置不同:
原始
数据
类型
存储在栈中,占据空间小,
大小
固定
,属于频繁使用数据。引用数据
类型
存储在堆中...
javascript数据
类型
与引用
类型
的区别以及
原始
值详解
其中基本数据
类型
包括Undefined,Null,Boolean,Number,
String
5种数据
类型
,在ES6中新增了两种基本的数据
类型
,Symbol,bigint引用
类型
有Object,Function,Array,Date,RegExp等这两种
类型
区别简略区别基本数据
类型
引用数据...
js基本数据
类型
和引用值
类型
?null是对象吗?
栈内存存放的一般是有
固定
大小
和空间的内容 字符串是个特例,字符串具有不变形,也存在栈内容中 堆内存存放
大小
不
固定
的内容 引用数据
类型
的数据存放在堆内存中 当我们声明一个引用
类型
的变量时,会在栈内存中存放.....
JavaScript
87,914
社区成员
224,620
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章