zoukankan      html  css  js  c++  java
  • 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);
     

     

  • 相关阅读:
    (原)torch中threads的addjob函数使用方法
    (原)torch中提示Unwritable object <userdata> at <?>.callback.self.XXX.threads.__gc__
    (原)luarocks更新某个模块
    EL表达式
    leetcode 151反转单词
    括号生成
    leetcode 机器人能到达的位置
    leetcode 翻转数组
    leetcode 460 LFU缓存
    leetcode 42 接雨水
  • 原文地址:https://www.cnblogs.com/tangyue/p/3684154.html
Copyright © 2011-2022 走看看