注册 登录
编程论坛 JavaScript论坛

关于string对象,下面的结果为啥是false啊?

境善 发布于 2015-05-14 15:21, 1259 次点击
<script>
  var str1=new String("hello");
   var str_cat=str1.concat(" world!");
   alert(str_cat instanceof String);
  </script>

str_cat 不是String 对象?
9 回复
#2
不懂才问2015-05-14 16:34
<!DOCTYPE HTML>
<meta charset="UTF-8">
<script language="javascript">
var str1=new Array("hello");
var str_cat=str1.concat(" world!");
alert(str_cat instanceof Array);
</script>


concat是连接数组的,参见下文
http://www.
#3
境善2015-05-14 20:38
回复 2楼 不懂才问
连接字符串 也是可以的啊  《js高程》里面说的
#4
不懂才问2015-05-14 21:51
<script>
var str1=new String("hello");
var str_cat=new String(str1.concat(" world!"));
alert(str_cat instanceof String);
</script>


参与下文
http://www.
#5
冰镇柠檬汁儿2015-05-14 22:32
instanceof 楼主你用过了吧,检测基础对象,应该用typeof吧
#6
境善2015-05-15 09:12
回复 5楼 冰镇柠檬汁儿
我知道应该用typeof  当时就是想测试一下 但是结果却不是我想的那样  用typeof测试的str_cat是string类型  但是用str_cat instaceof String  确是false  貌似string 和String(第一个字母有大小写)是不一样 所以就不明白了  请教~~
#7
冰镇柠檬汁儿2015-05-15 09:37
instaceof 是判断对象的,基本上可以理解成判断function这样的东东的,instaceof String的意思基本上就是在判断str_cat变量是不是String函数,变量当然不是函数,返回的当然也就是false了。
我这么解释其实是不准确的,但是便于你理解,你可以百度下更详细的资料
#8
境善2015-05-15 10:14
回复 7楼 冰镇柠檬汁儿
好的 谢谢
#9
jsRank2015-05-15 10:58
str1是字符串对象,类似于{value:str1}
但str_cat是str1经过concat返回的字符串值,属于基本类型数据,类似于:value=str_cat;
所以str1是String的实例对象,str1 instanceof String 会返回true,而str_cat不是对象,更别提是实例了,所以str_cat instanceof String会返回false
#10
冰镇柠檬汁儿2015-05-15 13:18
确实是这么回事,变量和对象是两码事
1