javascript对象和数组

Javascript是解释性语言,是解释一句编译一句(为了适应网络上传输带宽,不能传输过大的这个特点,所以采用解释性语言)。其介于JavaHTML之间。

注释:只是为了给程序员看的,不会参与到程序的编译中。

虚拟机在操作平台上运行,Java程序是在各个操作平台的虚拟机上运行。Java是跨平台的,平台无关性的语言。其不依赖于操作系统,其各个操作系统的兼容性由虚拟机完成。

Javascript是由浏览器解释运行的,所以其和操作系统也是无关的,也是平台无关性的。

 

为了解决有些浏览器不能解析javascript代码而设计的,如果浏览器把不能识别Javascript代码,这些代码就会被忽略。

 

Javascript采用的是弱类型的数据类型。

js的放置
1.位于 head 部分的脚本:
   当脚本被调用时,或者当事件被触发时,脚本就会被执行。当你把脚本放置到 head 部分后,就可以确保在需要使用脚本之前,它已经被载入了。
2.位于 body 部分的脚本:
   在页面载入时脚本就会被执行。当你把脚本放置于 body 部分后,它就会生成页面的内容。
3.在 body 和 head 部分的脚本:
你可以在文档中放置任何数量的脚本,因此你既可以把脚本放置到 body,又可以放置到 head 部分。
4.还有一种是外部javascript
一、javascript对象
javascript的object类型
1.使用new运算符
  var ob=new Object();创建一个对象
测试对象是什么类型:用typeof ,使用例子:typeof ob;
对象中包含哪些元素:
   1.属性
   2.函数
属性的创建方法:ob.name="例子",alert(ob.name);
2.可以省略new关键字
  var ob=Object();
3.字面量方式创建对象
  var ob={};
  创建属性:var ob={name:'例子',age:18};
  创建属性也可以是:var ob={‘name':'例子'};双引号也可以
  输出:alert(ob.name);
        alert(ob.['name']);用数组的方式输出,双引号也可以
        
4.给对象创建方法
1.传统的创建方法
function objrun(){
return '123';
}
var ob=new Object();
ob.name='lizi';
ob.age=18;
ob.run=objrun();会返回值,ob.run=getrun这个会打印出代码
alert(ob.run);
2.字面量的创建方法
var obj={
     name:'我的名字',
     age:21,
     run:function(){//匿名方法
       return '123';
      }
};
测试调用函数
alert(obj.run());
5.删除属性
  delete obj.name;
小技巧:字面量的对象显得代码更加简洁,具有封装的感觉
   例如:我们要穿多个参数,字面量方法更加简洁
  function box(obj){
      if(obj.name!=undefined)alert(obj.name);
      if(obj.love!=undefined) alert(obj.age);
}
  a. var obj={
     name:‘我的名字’,
     age:21
     }
b.匿名对象传参数
   box({
     name:‘我的名字’,
     age:21
     });
二、Array类型
   创建Array的方法有两种:
 1.使用new关键字
  var obj=new Array();
var obj=new Array(10);创建一个包含10元素的数组
var obj=new Array('我的名字','地址');创建了一个数组,并分配了2个元素
   alert(typeof obj);obj属于Object类型
 
var obj=new Array('我的名字','地址'),数组值的打印:
  1.以下标
  2.直接alert(obj);

2.字面量的数组创建



注意

ps:和object一样,字面量的写法不会调用Array()构造方法,(Firefox除外)
字面量的增加修改
以对象的方式给数组赋值,因为数组也是一个object对象


 var obe=['ty',21];
        obe.length=10;    强制了元素量
        alert(obe.length);
        alert(obe);
 根据obe的长度赋值
     var obe=['ty',21];
        obe[obe.length]="wod";获取最后一个下标值
        alert(obe);
数组的内置方法:


toLocaleString()方法有本地格式化的功能,其得到的日期是本电脑的时间
 
var obe=['ty',21];
alert(obe.join("%"));join()方法是将数组以某种方式(在这里是用%分隔)分隔返回的字符串
数组的栈方法(后进先出),就是类似于有底的杯子中装了东西,再取出的过程


var obe=['ty',21];
        alert(obe.push("我家门前")); 在数组的最后位置添加一个元素,并返回长度
        alert(obe);
       alert(obe.pop());   移除数组中的最后一个元素  ,并返回被移除的那个元素
        alert(obe);
数组的队列方法(先进先出),就是类似于无底的杯子中装了东西,再取出的过程

var obe=['ty',21,"我家门前"];
alert(obe.shift());   移除数组中的第一个元素  ,并返回被移除的那个元素
alert(obe);
alert(obe.unshift("我家111"));   在数组的第一个位置添加一个元素 ,并返回长度
alert(obe);
  数组中的排序方法
      reverse()倒序
       var box=[1,2,3,4,5];
       alert(box.reverse());返回一个倒序的数组
       alert( typeof box.reverse());object类型
       alert(box);原数组也被逆序了
     sort()正序
       var box=[1,5,7,9,3,2];
       box.sort();从小到大排序
        alert(box);
 
var box=[0,1,5,10,15];
box.sort();   从小到大排序
alert(box);
如果是两个位数的话,它会以个位来排序(及默认会以字符串的数字排序),所以结果会是 0,1,10,15,5    为了解决以上问题,我们必须得告诉浏览器要以数字类型来排序,代码示例如下:
    function compare(value1,value2){
        if(value1
            return -1;
        }else if(value1>value2){
            return 1;
        }else{
            return 0;
        }
    }
var box=[0,1,5,10,15];
 从小到大排序,将 compare传给sort()方法来达到数字的排序 ,只适合数组中本来就是数字的排序
box.sort(compare);  
alert(box);
数组中操作方法
  1.concat()方法,是在原来的数组中添加一个新的元素并创建一个新的数组
  var box=['你好',123];
        var info=box.concat("世界");
                  alert(info); 是在原来的数组中添加一个新的元素并创建一个新的数组
        alert(box); 原来的数组没有变化
 
   2.slice()方法的用法,取值
    var box=['你好',123,'世界'];
        var info=box.slice(1);  从下标为1开始读取数据直到把该数组的值读完
                 alert(info);
 
var box=['你好',123,'世界'];
 //注意不是从第1个位置取3个,而是从第一个位置取到第3个位置(也就是不管从什么位置开始,都只取到第三个元素的地方)
        var info=box.slice(1,3); 
        alert(info);
3.splice()方法的用法
     a.筛选功能
     var box=['你好',123,'世界'];
        alert(box.splice(0,3));    //返回从第0个位置取3个元素
     b.删除功能
     var box=['你好',123,'世界'];
     box.splice(0,2);//删除了从第0个位置取3个的元素
        alert(box); //原对象只剩下’世界‘了
      c.插入功能
     var box=['你好',123,'世界'];
//1,0的意思是从下标为1的位置开始不取值,  1,0,"真","好"代表的是从下标为1的位置开始插入数据
       //box.splice(1,0,"真","好");
//1,2的意思是从下标为1的位置开始截掉2个值,  1,2,"真","好"代表的是从下标为1的位置开始插入数据
         box.splice(1,2,"真","好");
        alert(box);
     d.替换功能
      var box=['你好',123,'世界'];
//1,1的意思是从下标为1的位置开始截掉1个值,并以100来替换 ,其实和插入功能差不多
box.splice(1,1,100);//返回被删除的那一条
alert(box);
 

 

原文地址:https://www.cnblogs.com/tangyue/p/3684154.html