/** 今天在一个blog上面看到一个赋值运算符,拿过来分析下 */ var x = y = new String("abc"); x.x = x = "def"; console.log(x,y,x.x,y.x); /* 说下结果 结果是 dev abc undefined def 但是看了对应文章的分析,我感觉分析的有点问题,所以拿过来分析下 对方blog的地址是http://lichaosoft.net/?p=89 要了解的点 1:赋值运算符是从右侧到左侧,所以以下的是相等的 x = y = "abc" 实际上就是 x = (y = "abc") 2:new String("abc")的类型,是对象,所以赋值的时候应该是传引用,不是传值 所以上面例子中的var x = y = new String("abc"); 我们的结论应该是x和y应该是同变化的,修改x的时候y会同时变化。 3:比较关键的一个地方 x.x = x = "def"; 这个东西最应该注意的地方是首先干吗? 他会首先是定义一个值x.x变量,分解的话可以理解为这样 var x.x = null; x对象改变了,加了一个变量值,那么y相对应的改变y.x = null x = "def";x对象被转化为了string类型了,基本数据类型,所以y不会改变数据类型,这是string的特性,string的引用是一种不可被改变值的对象,比较特殊,new String("abc")其实就是一个类似数组的对象,里面也是按索引0开始的一个类似数组,已经存在的索引是无法修改的,也无法删除。 x.x = x; 因为x已经变成了基本数据类型,所以x.x是是不能操作的,但是x.x实际上又是y.x的一个引用,所以y.x会变成def */?
详细解决方案
String对象赋值有关问题
热度:137 发布时间:2012-09-08 10:48:07.0
相关解决方案
- java.lang.NumberFormatException: For input string: "id"该如何处理
- java.lang.NoSuchMethodException: setId([Ljava.lang.String;)解决方法
- java类型异常java.lang.Integer cannot be cast to java.lang.String
- String.matches(String regex)的有关问题
- xfire错误:For input string: ""
- String 去除乱码的有关问题,help
- hibernate映射文件有关自增类型,String,精度的有关问题
- java.lang.NumberFormatException: For input string: "1>"解决思路
- jsp页面post到servlet发生异常:java.lang.NoSuchMethodError: bean.User.<init>(Ljava/lang/String;Ljava/lang/Str
- 在JSP中,List<String> str_list这个集合如何遍历呢
- 谁帮小弟我看下Source not found for ResponseFacade.sendRedirect(String) line: 483
- tomcat启动出现Caused by: java.lang.StringIndexOutOfBoundsException: String index out解决方法
- Enumeration<String> 和 Parameter,该如何处理
- java.lang.NumberFormatException: For input string: ""报错,求大家帮助,该如何处理
- s:iterator 迭代 按动态名取List<Map<String,object>>解决方案
- java.lang.NumberFormatException: For input string: "previews"解决办法
- jButton.setToolTipText(String)小疑点
- jButton.setToolTipText(String);该怎么处理
- J2ME中有没有lastIndexOf(String str, int fromIndex)解决方案
- "kkkwsss"string.replace('w','');为什么会出错?该如何解决
- 接收服务器字符串长的时候,messg=new String(ss,"UTF-8");无法转换,该如何处理
- String 占多少象素,该如何处理
- 形参类型是 int ,按理只能接受 数值 或 char ,为什么下面传和个 String 也行?解决办法
- String
- 怎样用android重写j2me,player里的createPlayer(InputStream stream, String type)解决方案
- 关于client.invoke(string , object[])解决方法
- java String 截取字符串解决思路
- java String 截取字符串,该怎么处理
- 如何将lisng<String>类型的集合转为JSON 在页面下用ext的Combox显示
- 如何把Map<String,Object>类型转换成JSON