• 杂乱无章之javascript(一)


    1.in 要求第一个(左边的)操作数必须是字符串类型或是可以转化成字符串类型的其他类型,而第二(右边的)操作数必须是数组或对象。只有第一个操作数的值是第二个操作数的属性名,才会返回true,否则返回false。对于对象而言比较的是对象的属性名,而对于数组比较的是数组的下标是否合法。
    <script language="javascript">
    var box={box_length:200,box_100};
    var arr={"box_length",200,"200"};
    var x="box_length";
    var y=2;
    if(x in box)
    {
     document.write("变量x包含在对象box中!");//返回true
    }
    else
    {
     document.write("变量x不包含在对象box中!");//返回false
    }
    if(y in box)
    {
     document.write("变量y包含在对象box中!");//返回false
    }
    else
    {
     document.write("变量y不包含在对象box中!");//返回true
    }
    if(x in arr)
    {
     document.write("变量x包含在数组arr中!");//返回false
    }
    else
    {
     document.write("变量x包含在数组arr中!");//返回true
    }
    if(y in arr)
    {
     document.write("变量y包含在数组arr中!");//返回true
    }
    else
    {
     document.write("变量y不包含在数组arr中!");//返回flase
    }
    </script>

    2.with   
    语法:with(对象)
      <语句块>
    <html>
    <head>
    <title>with语法演示</title>
    </head>
    <body>
    <form name="myform">
     <input type="text" name="mytext1" /><br />
        <input type="text" name="mytext2" /><br />
        <input type="text" name="mytext3" />
    </form>
    <script language="javascript">
     document.form[0].mytext1.value="第一个文本框";
     with(document.forms[0])
     {
      mytext2.value="第二个文本框";
      mytext3.value="第三个文本框";
     }
    </script>
    </body>
    </html>

    3.函数(三种写法)
    <script language="javascript">
     var mySum=new Function("x","y","return x+y");//Function()可以接受一个或多个参数,Function()构造函数的最后一个参数为函数体的内容。
     
     function mySum(x,y)
     {
      return x+y;
     }
     
     var mySum=function(x,y){return x+y;};
    </script>
    4.instanceof
    用来判断对象是否属由某个构造函数定义的。要求第一个操作数是一个对象或数组的名称,而第二个操作数是对象类的名字。若第一个操作数是第二个操作数的实例,则会返回true;反之返回false。
    <script language="javascript">
    var myDate=new Date();
    if(myDate instanceof Date)
    {
     document.write("myDate是Date类的实例!");//返回true
    }
    else
    {
     document.write("myDate不是Date类的实例!");//返回false
    }
    if(myDate instanceof Object)
    {
     document.write("所有类都是Object类的实例!");//返回true
    }
    else
    {
     document.write("所有类都不是Object类的实例!");//返回false
    }
    </script>
    5.typeof
    返回变量的数据类型
    <script language="javascript">
    var a="aldsfjkadf";
    document.write(typeof(a));//输出结果是“string”
    </script>
    6.this         this[.属性]
    <html>
    <head>
    <title>this用法的演示</title>
    <script language="javascript">
    function output1(obj)
    {
     alert(obj.value);
    }
    function output2(str)
    {
     alert(str);
    }
    </script>
    </head>
    <body>
     <input type="text" value="第1个文本框" onClick="output1(this)" />
        <input type="text" value="第2个文本框" onClick="output2(this.value)" />
    </body>
    7.函数---获得实际传递参数的值(Arguments)
    <script language="javascript">
    function myFun(x,y)
    {
     if(arguments.length!=2)
     {
      var str="传递参数个数有误,共传递了"+arguments.length+"个参数!";
      str+="传递的参数值分别为:<br>";
      for(i=0;i<arguments.length;i++)
      {
       str+="第"+(i+1)+"个参数值为"+arguments[i]+"<br>";
      }
      return str;
     }
     else
     {
      var z=x+y;
      return z;
     }
    }
    </script>
    <script language="javascript">
    function Paixu()
    {
     var arrLength=arguments.length;
     for(i=0;i<arguments.length;i++)
     {
      for(j=arrLength;j>i;j--)
      {
       if(arguments[j]<arguments[j-1])
       {
        temp=arguments[j];
        arguments[j]=arguments[j-1];
        arguments[j-1]=temp;
       }
      }
     }
     for (i=0;i<arrLength;i++)
     {
      document.write(arguments[i]+" ");
     }
    }
    Paixu(12,4,8,3,6,2,0,1,25)
    </script>

    8.函数---获得函数定义参数的个数(length)
    函数的length和arguments对象的length属性不同,arguments对象的length只能在函数内使用,而函数的length属性可以在函数外使用。
    <script language="javascript">
     function myCheck(parames)
     {
      if(parames.length!=parames.callee.length)//parames就是arguments;arguments.callee.length返回的是正在使用的函数定义参数的个数
      {
       return false;
      }
      else
      {
       return true;
      }
     }
    </script>
    9.call()方法    函数名.call(对象名,参数1,参数2,...)
    改方法可以像调用其他对象的方法一样调用某个函数的。
    <script language="javascript">
    function Paixu()
    {
     var arrLength=arguments.length;
     for(i=0;i<arguments.length;i++)
     {
      for(j=arrLength;j>i;j--)
      {
       if(arguments[j]<arguments[j-1])
       {
        temp=arguments[j];
        arguments[j]=arguments[j-1];
        arguments[j-1]=temp;
       }
      }
     }
     for (i=0;i<arrLength;i++)
     {
      document.write(arguments[i]+" ");
     }
    }
    var myObject=new Object();
    Paixu.call(myObject,13,3,45);
    </script>
    10.系统函数--求值函数eval()
    该函数主要作用是将字符串指定为对象。
    <script language="javascript">
    function pen(color,price)
    {
     this.color=color;
     this.price=price;
    }
    var pen1=new pen("红色",10);
    var pen2=new pen("绿色",20);
    var pen3=new pen("黑色",30);
    for(i=1;i<4;i++)
    {
     var penx=eval("pen"+i);
     document.write("笔"+i+"的颜色为"+penx.color+",价格为"+penx.price+"<br>");
    }
    </script>
    11.系统函数--数值判断isNaN()
    用来判断变量是否为数字型变量。如果该参数返回false,说明该变量为数字型变量,否则是非数字型变量。
    <script language="javascript">
    function mySum(x,y)
    {
     if(isNaN(x) || isNaN(y))
     {
      return "参数类型必须是数字类型!";
     }
     else
     {
      return (x+y);
     }
    }
    document.write(mySum(1,2));
    document.write(mySum(6,"a"));
    </script>
    12.创建有默认值的构造函数
    <script language="javascript">
    function pen(name,color,price)
    {
     this.name=name;
     this.color=color;
     if(price==undefined)
     {
      this.price=20;
     }
     else
     {
      this.price=price;
     }
    }
    var pen1=new pen("铅笔","红色",40);
    document.write(pen1.name);
    document.write(pen1.color);
    document.write(pen1.price);
    </script>
    13.创建有方法的构造函数
    <script language="javascript">
    function written(str)
    {
     document.write(str+"<br>");
    }
    function pen(name,color,price)
    {
     this.name=name;
     this.color=color;
     this.price=price;
     this.write=write;
    }
    var pen1=new pen("钢笔","红色",100);
    document.write(pen1.name);
    document.write(pen1.color);
    document.write(pen1.price);
    pen1.write("钢笔字");
    </script>

    14.修改对象原型
    <script language="javascript">
    function pen(color,price)
    {
     this.color=color;
     this.price=price;
    }
    pen.prototype.name="钢笔";
    var mypen=new pen("红色",20);
    document.write("笔的名称"+mypen.name);
    pen.prototype.name="铅笔";
    document.write("笔的名称"+mypen.constructor.prototype.name);
    </script>
    15.constructor属性:返回对象的构造函数
    typeof可以判断操作数的类型,若操作数是对象则返回“object”,但它不能判断对象是什么类型的对象。Object对象中的constructor属性可以判断一个对象的类型,constructor属性引用的是对象的构造函数。
    <script language="javascript">
    var myObject1=new Object();
    var myObject2=new Object(1.12234324);
    var myObject3=new Object(false);
    var myObject4=new Object("str");
    if(myObject1.constructor==Object)
    {
     document.write("这是一个对象<br>");
    }
    if(myObject2.constructor==Number)
    {
     document.write("这是一个数字对象<br>");
    }
    if(myObject3.constructor==Boolean)
    {
     document.write("这是一个布尔对象<br>");
    }
    if(myObject1.constructor==String)
    {
     document.write("这是一个字符串对象<br>");
    }
    </script>

    16.valueOf()方法:返回对象的原始值

    valueOf()返回的是与对象相关的原始值,如果对象相关的原始值不存在,则返回对象本身。语法:object.valueOf()

    <script language="javascript">

    var myObject1=new Object();

    myObject1.name="铅笔";

    myObject1.price=20;

    var myObject2=new Object(1.23453463);

    var myObject3=new Object(false);

    var myObject4=new Object("str");

    document.write(myObject1.valueOf());//返回[object Object]

    document.write(myObject2.valueOf());//返回1.23453463

    document.write(myObject3.valueOf());//返回false

    document.write(myObject4.valueOf());//返回str

    </script>

    17.日期对象
    new Date();
    new Date(str);
    new Date(year,month,day,hours,minutes,seconds,milliseconds);
    new Date(milliseconds1);//代表距离1970年1月1日0点时的毫秒数。
    <script language="javascript">
    var myDate1=new Date();
    document.write(myDate1.toLocaleString());
    var myDate2=new Date("auguest 31,2009 10:21:00");
    var myDate3=new Date(2009,8,31);
    var myDate4=new Date("auguest 31,2009");
    var myDate5=new Date(2009,9,24,19,53,46);//2009-9-24  19:53:46
    var myDate6=new Date(8000);//创建一个距离1970年1月1日午夜8000毫秒的日期
    </script>
    18.获得日期
    date.getYear()      //返回对象日期中的年份,不建议使用
    date.getFullYear()  //返回对象日期中的年份,建议使用,以4位数显示
    date.getMonth()  //返回对象日期中的月份,其值范围0--11,1月份返回0,2月份返回1 .....
    date.getDate()  //返回对象日期中的天数,即一个月的某一天。
    date.getDay()  //返回对象日期中的日期是一周中的第几天,其值范围是0--6,周日为0,周一为1......
    <script language="javascript">
    var myDate=new Date();
    document.write(myDate.getFullYear());
    </script>

    19.获得时间
    date.getHours()  //返回对象日期中的小时部分
    date.getMinutes() //返回对象日期中的分钟部分
    date.getSeconds() //返回对象日期中的秒钟部分
    date.getMilliseconds()//返回对象日期中的毫秒部分
    date.getTime()  //返回对象日期中的时间与19701月1日0时0分0秒所间隔的毫秒数
    date.getTimezoneOffset()//返回对象日期中的本地时间与UTC(世界时间)之间的时差数。
    以下是获取世界时间
    date.getUTCHours()
    date.getUTCMinutes()
    date.getUTCSeconds()
    date.getUTCMilliseconds()
    20.创建Error对象
    new Error()
    new Error(message)
    <script language="javascript">
    function myFun(x,y)
    {
     var z;
     try
     {
      if(y==0)
      {
       var myErr=new Error("除数不能为0!");
       throw myErr;
      }
      z=x/y;
     }
     catch(ex)
     {
      z=ex.message;
     }
     return z;
    }
    document.write(myFun(1,0));
    </script>

    21.Error对象的属性
    error.name:该属性为错误类型;
    error.message:该属性为错误信息。
    <script language="javascript">
    var myString="My String";
    try
    {
     var errString=myString.subString(2,4);//使用方法时将方法的大小写输入错误
    }
    catch(ex)
    {
     document.write("错误类型为:"+ex.name+"<br>");
     document.write("错误信息为:"+ex.message);
    }
    </script>
    22.Error对象的方法
    error.toString() :该方法返回的是一个用来表示Error对象的字符串,通常为"[object Error]"。
    23.定义数组
    有四种定义方式
    (1)new Array()  定义空数组
    <script language="javascript">
     var arr=new Array();
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回0
     arr[0]="字符串";
     arr[1]=true;
     arr[2]=13;
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
    </script>
    (2)new Array(size)  指定数组长度定义数组
    <script language="javascript">
     var arr=new Array(3);
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“”
     arr[0]="字符串";
     arr[1]=true;
     arr[2]=13;
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
    </script>
    (3)new Array(element1,element2,...)  指定数组元素定义数组
    <script language="javascript">
     var arr=new Array("字符串",true,13);
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
    </script>
    (4)直接定义数组
    <script language="javascript">
     var arr=["字符串",true,13]
     document.write("变量arr的构造函数为:"+arr.constructor+"<br>");
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
    </script>
    24.删除数组元素
    <script language="javascript">
     var arr=new Array("字符串",true,13);
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
     delete arr[1];
     document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
     document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,,13”
    </script>
    25.数组元素的个数
    array.length
    <script language="javascript">
     var myString="This is my string";
     var myArr=myString.split(" ");
     document.write(myArr.length);//返回4
     myArr[myArr.length]="新增元素";
     document.write(myArr.length);//返回5
     document.write(myArr);//返回This,is,my,string,新增元素
    </script>
    26.toString()方法  将数组转换为字符串
    27.join()方法  将数组元素连接成字符串
    join()
    join(str)
    <script language="javascript">
     var str=[1,2,3];
     document.write(arr.join());//返回1,2,3
     document.write(arr.join("-"));//返回1-2-3
     document.write(arr.join("aaa"));//返回1aaa2aaa3
    </script>
    28.push()方法  在数组尾部添加元素
    push(value,...)
    <script language="javascript">
     var arr=[1,2,3];
     var arrlength=arr.push(9);//var arrlength=arr.push(4,5) //arr数组的值为[1,2,3,4,5]
     document.write(arrlength+"<br>"+arr.toString());//返回4  1,2,3,9
     arrlength=arr.push("a",true,111,666);
     document.write(arrlength+"<br>"+arr.toString());//返回8  1,2,3,9,a,true,111,666
    </script>

    29.concat()方法  添加元素并生成新数组
    concat(value,...)
    <script language="javascript">
     var oldarr=[1,2,3];
     var newarr=oldarr.concat("a",true,111,666);
     document.write(newarr.toString());//返回1,2,3,a,true,111,666
     document.write(oldarr.toString());//返回1,2,3
    </script>
    30.unshift()方法  在数组头部添加元素(用法和push()方法相同)
    31.pop()方法  删除并返回数组的最后一个元素
    <script language="javascript">
     var arr=[1,2,3];
     document.write(arr.toString());//返回1,2,3
     var lastarr=arr.pop();
     document.write(lastarr);//返回3
     document.write(arr.length);//返回2
     document.write(arr.toString());//返回1,2
    </script>
    32.shift()方法  删除并返回数组的第一个元素(用法和pop方法相同)
    33.splice()方法  删除、替换或插入数组元素
    splice(start,count,value,...)
    start:要删除、替换或插入数组元素的开始位置,即下标。
    count:要删除、替换或插入数组元素的个数,该参数可选。
    value:要插入数组元素的值,从start下标开始插入,该参数可选。
    splice()方法的返回值是一个数组,删除元素时,返回的是已删除的元素;替换元素时,返回的是被替换的元素。
    <script language="javascript">
     var arr=[1,2,3,4,5,6,7,8,9];
     document.write(arr.toString());//返回1,2,3,4,5,6,7,8,9
     var arr1=arr.splice(5,1);
     document.write(arr1.toString());//返回6
     document.write(arr.toString());//返回1,2,3,4,5,7,8,9
     var arr2=arr.splice(1,3);
     document.write(arr2.toString());//返回2,3,4
     document.write(arr.toString());//返回1,5,7,8,9
     var arr3=arr.splice(1,3,"a","b","c","d","e");
     document.write(arr3.toString());//返回5,7,8
     document.write(arr.toString());//返回1,a,b,c,d,e,9
     var arr4=arr.splice(1,0,true,false);
     document.write(arr4.toString());//返回
     document.write(arr.toString());//返回1,true,false,a,b,c,d,e,9
    </script>
    34.slice()方法  返回数组中的一部分
    slice(start,end)
    start:返回数组部分的开始处的数组下标。该值可以为负数,若为负数则表示从数组的最后1个元素开始计数位置,如-1为数组的最后1个元素,-2为数组的倒数第2个元素;
    end:返回数组部分的结束处的数组下标。该值可以为负数,若为负数则表示从数组最后1个元素开始计数位置,如-1为数组的最后1个元素,-2为数组的倒数第2个元素;
    slice方法返回的也是一个数组,是原数组的一个片段,即从start到end为止的所有元素,不包括end元素。
    <script language="javascript">
     var arr=[1,2,3,4,5,6,7,8,9];
     var arr1=arr.slice(1,5);
     document.write(arr.toString());//返回1,2,3,4,5,6,7,8,9
     document.write(arr1.toString());//返回2,3,4,5
     var arr2=arr.slice(1,-1);
     document.write(arr2.toString());//返回2,3,4,5,6,7,8
     var arr3=arr.slice(-5,-1);
     document.write(arr3.toString());//返回5,6,7,8
     var arr4=arr.slice(4);
     document.write(arr4.toString());//返回5,6,7,8
    </script>
    35.reverse()方法  颠倒数组中的元素
    <script language="javascript">
     var arr=[1,2,3,4,5,6,7,8,9];
     document.write(arr.toString());//返回1,2,3,4,5,6,7,8,9
     arr.reverse();
     document.write(arr.toString());//返回9,8,7,6,5,4,3,2,1
    </script>
    36.sort()方法  将数组元素排序
    sort()
    sort(order)
    其中order参数是可选参数,用来指定使用什么方法来对数组中的元素进行排序,若省略order参数,将按字符编码的顺序排序,反之则必须指定order的参数。order参数必须是一个函数,该函数应该有两个参数(假设x和y)。在使用sort()排序时,每次比较两个元素时都会执行比较函数,并将两个元素作为参数传递个比较函数。比较函数有以下两个返回值
    (1)如果返回值大于0,则交换两个元素的位置。
    (2)如果返回值小于或等于0,则不进行操作。
    <script language="javascript">
     var arr=[39,35,11,88,55,222,77];
     document.write(arr.toString());//返回39,35,11,88,55,222,77
     arr.sort();
     document.write(arr.toString());//返回11,222,35,39,55,77,88
     //正序排序
     function ascorder(x,y)
     {
      if(x>y)
      {
       return 1;
      }
      else
      {
       return -1;
      }
     }
     //倒序排序
     function descorder(x,y)
     {
      if(x>y)
      {
       return -1;
      }
      else
      {
       return 1;
      }
     }
     arr.sort(ascorder);
     document.write(arr.toString());//返回11,35,39,55,77,88,222
     arr.sort(descorder);
     document.write(arr.toString());//返回222,88,77,55,39,35,11
    </script>

  • 相关阅读:
    python没有switch,可以用字典来替代
    Django1.8:403错误:CSRF verification failed. Request aborted.
    django重定向
    第九章 JSP标签——《跟我学Shiro》
    第八章 拦截器机制——《跟我学Shiro》
    第七章 与Web集成——《跟我学Shiro》
    第六章 Realm及相关对象——《跟我学Shiro》
    第五章 编码/加密——《跟我学Shiro》
    第四章 INI配置——《跟我学Shiro》
    第三章 授权——《跟我学Shiro》
  • 原文地址:https://www.cnblogs.com/jassy/p/4229468.html
Copyright © 2020-2023  润新知