javascript为什么字符串直接量可以使用属性和方法
在分析标题中的问题之前先来看一段代码实例:
var str="实例3";
console.log(str.length);
如果不深究,那么上面的代码实在是太普通不过了,但是细致看来,可能有不少朋友有这样的疑问,那就是为什么字符串直接量可以使用属性或者方法,不是只有对象才可能吗,下面就介绍一下其中的原理:
当字符串直接量调用属性或者方法的时候,javascript会隐式将字符串直接量转换为对象,也就相当于执行了操作:
var str="实例3";
var str=new String(str)
console.log(str.length);
特别说明:隐式转换创建的是一个临时对象,一旦属性或者方法引用结束,这个新创建的对象就会被销毁(在javascript的内部具体是否真正创建了临时对象或者销毁临时对象不得而知,这里不深究了,从表现来看确实如此)。对于其他的布尔值或者数字也是一样的道理。再来看一段代码实例:
var str="实例3";
str.len=15;
console.log(str.len);
上面代码输出是undefined,因为临时对象在调用属性之后就自动销毁了。
代码修改:
var str="实例3";
var str=new String(str);
str.len=15;
console.log(str.len);
上面的代码没有任何问题,因为这里确确实实创建一个对象。
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至201542412@QQ.com举报,一经查实,本站将立刻删除。
相关推荐
-
js将字符串转换为编码序列代码实例
本章节分享一段代码实例,它实现了将字符串转换为编码序列的功能。代码如下:vr str=实例3;vr rr=str.slit();vr codrr=rr.m(funct
-
js选中指定位置文本框文本代码
本章节分享两段代码,它可以实现对文本框中指定文本内容的选中效果。代码实例如下:function gtos(l) { vr rng, txtRng, dulict l.fo
-
javascript删除指定索引的数组代码实例
本章节分享一段代码实例,它实现能够删除数组指定索引的元素的效果。代码实例:function RmovVlByIndx(rr,indx){ rr.slic(indx,1);}vr
-
获取文档最后修改时间代码实例
本章节分享一段代码实例,它实现获取当前文档最后修改时间的效果。代码实例如下
-
select下拉菜单多级级联效果代码实例
使用slct下拉菜单经常制作多级级联效果,本章节就以一个省市地区三级级联效果做一下演示。代码实例如下: