首页 > js的数组为什么能调用字符串的api方法

js的数组为什么能调用字符串的api方法

demo:

var arr="123456";
console.log(typeof arr);//string
console.log(typeof arr.indexOf(1));//number
console.log(arr.indexOf(1));//0

var arr1=[1,2,3,4,5,6];
console.log(typeof arr1);//Object
console.log(typeof arr1.indexOf(1));//number
console.log(arr1.indexOf(1));//0

arr类型是string ,arr1是Object。
之前在《JavaScript高级程序设计》看到说 js一些元素皆对象。
也听人说过字符串实际就是加了双引号的数组。
经过上面这个方法的测试,是不是可以认定为,字符串能调用数组的Api方法,数组也能调用字符串的Api方法呢?
今天刚用这个方法实现了双色球的demo,虽然实现了效果,但对这两个类型之间的api调用关系不是很理解,很是困惑。
不用循环实现双色球的demo如下:

var blue;
  //1-16之间随机生成了一个篮球,存入blue中
blue = Math.floor((Math.random()*(16-1+1)+1));
 var reds = [];
  while(reds.length<6){
// 先随机生成1-33之间的整数
var bools=Math.floor((Math.random()*(33-1+1)+1));
//判断整数是否已存在reds中
//如果存在就将isExit=true
var isExit = false;
if(reds.indexOf(bools)==-1){
//否则将数组压入数组reds中
//reds中保存了6个不重复的随机数
    isExit = true;
}
if(isExit){
    reds.push(bools);
    }
  }
    document.write(reds.join(",")+"|"+blue);

小弟不才还请各路大仙指点一下。



array 的indexof 可能是最近的javascript 版本才支持的,
IE8以前都不行的

【热门文章】
【热门文章】