//========数组对象
//========添加删除数组元素方法 /push()后面添加/unshift()前面添加/pop()删除最后/shift()删除第一个
//1 push() 后面追加
// var arr = [1,2,3]
// arr.push(4)
// console.log(arr); //1,2,3,4
// //2 unshift() 前面追加
// arr.unshift(6)
// console.log(arr) //6,1,2,3,4
// //3 pop() 删除最后一个
// arr.pop()
// console.log(arr)
// //4 shift()删除第一个
// arr.shift()
// console.log(arr);
//案例
// var arr = [1,4,5,6,7,8,3]
// var newArr=[]
// for(var i =0;i<arr.length;i++){
// if(arr[i]<6){
// newArr.push(arr[i])
// }
// }
// console.log(newArr);
//===========数组排序
//1翻转数组
// var arr=[1,2,3,4]
// arr.reverse()
// console.log(arr);
// //2数组排序
// var arr1=[1,6,61,3,8,5,7,4]
// arr1.sort(function(a,b){
// // return a-b //升序
// return b-a //降序
// })
// console.log(arr1);
//=======数组索引方法 indexOf()返回对应数组元素的索引号
// var arr = [1,2,3,4,5,6,7,8,7,9]
// console.log(arr.indexOf(7)); //6
//=====================================================
//案例 数组去重
//1
//1
// var arr = [1,2,2,3,5,4,5,6,6,6,7,8,9,9]
// var newArr=[]
// for(var i=0;i<arr.length;i++){
// if(newArr.indexOf(arr[i])===-1){
// newArr.push(arr[i])
// }
// }
// console.log(newArr);
// //2
// function unique(arr){
// var newArr=[]
// for(var i=0;i<arr.length;i++){
// if(newArr.indexOf(arr[i])===-1){
// newArr.push(arr[i])
// }
// }
// return newArr
// }
// var demo = unique([1,2,2,3,5,4,5,6,6,6,7,8,9,9])
// console.log(demo);
//===========================================================
//====数组转换为字符串=======
//1.toString() 将我们的数组转换为字符串
// var arr = [1,2,3]
// console.log(arr.toString()); //1,2,3 //默认,
// //2.join(分隔符)
// var arr1 = ['green','blue','pink']
// console.log(arr1.join('&')); //green&blue&pink
// //字符串对象
// //基本包装类型
// var str = 'andy'
// console.log(str.length); //简单数据类型为什么会有length属性?基本包装类型 把简单数据类型包装成了复杂数据类型
// //字符串不可变
// //因为字符串不可变 所以不要大量拼接字符串 占用内存资源
//案例 查找字符串
// var str = 'abcwurofsowqeroq'
// var index = str.indexOf('o')
// var num =0
// while(index!==-1){
// console.log(index);
// num++
// index=str.indexOf('o',index+1)
// }
// console.log('o出现了:'+num+'次');
//根据位置返回字符
//1,charAt()
// var str = 'andy'
// console.log(str.charAt(3));
// for(var i=0;i<str.length;i++){
// console.log(str.charAt(i));
// }
// //2,charCodeAt()
// console.log(str.charCodeAt(0)); //97
// //3,str[] //H5新增的
// console.log(str[0]); //a
//===============================================
//案例 判断字符串里出现最多的字符 并统计字数
// var str = 'abcwurofsowqeroq'
// var o ={}
// for(var i=0;i<str.length;i++){
// var chars =str.charAt(i)
// if(o[chars]){
// o[chars]++
// }else{
// o[chars]=1
// }
// }
// console.log(o);
// var max=0
// var ch =''
// for(var k in o){
// if(o[k]>max){
// max=o[k]
// ch =k
// }
// }
// console.log(max);
// console.log('最多的字符是'+ch);
//=========================================
//字符串操作方法
//substr(起始位置NUM,截取几个字符NUM)
// var str = '我喜欢陈春'
// console.log(str.substr(1,4));
//替换字符串方法
//replace('被替换的字符','替换为的字符')
// var str = 'abcdefg'
// console.log(str.replace('b','d'));
//字符串转换为数组 split(',')
// var str = 'a,b,c,d,e,f,g'
// console.log(str.split(','));
//====================================
1.简单类型与复杂类型
简单类型又叫基本数据类型或则值类型,复杂类型又叫引用类型.
*值类型:在存储变量中储存时值本身,因此叫做值类型 string,number,Boolean,undefined,null
*引用类型:在储存变量中储存仅仅时地址,因此叫做引用数据类型,通过new关键字创建对象,如Object,Array,Date等,
2.队和栈 javascript里面没有堆和栈的概率,通过这个方式更容易理解
简单数据类型存在栈里面,复杂数据类型存在堆里面,互不干扰
3.简单类型的内存分配
简单数据类型是存放在栈里面,里面直接开辟一个空间存放的值
复杂数据类型 先在栈里面存放地址 十六进制表示 然后这个地址指向堆里面的数据
4.简单数据类型传递参数
5.复杂数据类型传递参数