javascript 变量赋值,怎么看出是将字符串直接赋值给变量 ,还是字符串对象将引用指向变量?

在下面的例子中,我们使用字符串对象的长度属性来计算字符串中的字符数目。<scripttype="text/javascript">vartxt="HelloWorld!"... 在下面的例子中,我们使用字符串对象的长度属性来计算字符串中的字符数目。
<script type="text/javascript">

var txt="Hello World!"
document.write(txt.length)
</script>
上面的代码输出为:
12

上面这个例子中,怎么看出字符串“Hello World!"是个基本类型字符串还是一个字符串对象,是将字符串“Hello World!"赋值给变量txt呢?还是将由变量txt 引用字符串“Hello World!"呢?现在让其搞混了。
展开
 我来答
whiteamoon
2012-12-01 · TA获得超过251个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:168万
展开全部
javascript 几乎没有数据类型的概念,一共5种,undefined、number、string、null、布尔
我忘记从什么地方看的,本质上上面5种也都是继承(这个词我没斟酌好怎么描述)object。
加起来就死typeof的6种返回值。

javascript 把所有类型都当作对象来看,我觉得”将字符串“Hello World!"赋值给变量txt“这种说法更贴近。相当于有一个object叫txt,txt有两个方法,txt.value='Hello World!';txt.length=12;

欢迎继续讨论
追问
JavaScript是没有数据类型概念,但大家知道数据本身都要有数据类型之分的,JavaScript也内置数据类型的。我是这样理解的,若“Hello World"看作字符串(即文本型)型数据,var txt="Hello World"这条语句将其值拷贝给变量txt的;若"Hello World"看作是对象型数据,也就是"Hello World"是一个字符串对象来看待的话,这条语句就是将"Hello World"的内存地址赋给了变量txt,而不是其本身的值,不知理解是否正确?
追答
Number和String是赋值,其他对象都是指针传递。

这句话想不起来出处了,我是在N+N年前的笔记的深处找的。呵呵。

“Hello World"看作字符串(即文本型)型数据,var txt="Hello World"这条语句将其值拷贝给变量txt的; 我倾向这种解释
e23jiang
2012-12-08 · TA获得超过1209个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:206万
展开全部
值类型都是直接赋值,引用类型就是赋值引用,你可以这样测试一下
var a = 1;
var b=a;
b=10;
alert(“a:”+a);
alert("b:"+b);
输出的是 a:1 b:10
因为这里是直接将1这个作为值赋给了b,当我修改了b 的值的时候不会影响a
换中引用类型看一下
var arra = new Array()
var arrb = arra;
arrb[0] =100;
alert("arra:"+arra)
alert("arrb:"+arrb)
这里输出的结果是一样的,因为arra 和arrb 指向都是同一个对象 当arrb对这个对象操作 实际arra 指向的也被修改了 这样明白哪个赋值的是引用哪个赋值是值了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shangwenhe
2012-12-07
知道答主
回答量:43
采纳率:0%
帮助的人:11.6万
展开全部
typeof txt == 'string'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式