• JavaScript_语法,语句,函数,对象



    1.JavaScript与Java对比:

    JavaScript出自Netspace公司
    Java出自sun公司

    JS是基于对象的,Java是面向对象的

    JS是弱类型(非严谨)语言,Java强类型(严谨)语言

    只要浏览器中含有解析JS的引擎,便可执行,与平台无关

    2.JS变量,语句,循环:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JS_1</title>
    <link rel="stylesheet" type="text/css" href="CSS/table.css">
    
    <script type="text/javascript">
    
     /*
     //JS变量
     var str="'abc'"
     var i=3250/1000*1000
     var j
     alert(str)//弹出'abc',alert不是JS语句,而是dom编程中内容
     alert(i) //3250(而不是3000)
     alert(j) //undefined(变量定义但未初始化,弹出提示)
    */
    
    //JS语句
    /*
    var x=3
    if(3=x)//JS的0/null表示false,非0/非null为true
            //一般对于判断写成3==x避免错误
      alert("yes")
    else
      alert("no")
    
    alert(true+1)//2
    
    var y=true,z=false
    y=y&z //y&&z
    alert(y)//y&z(1&0)结果0,y&&z结果false
     */
    
    
    //for循环
    var sum="";
    for(var x=0;x<5;++x)
     if(x!=4)
       sum=sum+"x="+x+",";
     else
       sum=sum+"x="+x;
    document.write(sum+"<br/>");//x=0,x=1,x=2,x=3,x=4 
     //九九乘法表
     document.write("<table>");
     for(var i=1;i<=9;++i){
       document.write("<tr>")
       for(var j=1;j<=i;++j)
        document.write("<td>"+i+"*"+j+"="+(i*j)+"</td>");
       
      document.write("</tr>")
      document.write("<br/>");
     }
     document.write("</table>");
    
    
     //数组 
     var arr=[4,5,6];
     for(var i=0;i<arr.length;++i)
       document.write("arr["+i+"]="+arr[i]+"<br/>");
      
     var arr2=[1.2,"abc",3]//类似于Java中的集合,不存在越界
     document.write(arr2[5]);//如果元素为被初始化,undefined
     
     var arr3=new Array();//未指定初始值
     arr3[1]="efg";
     document.write("<br/>"+arr3[1]);
     </script>
    </head>
    
    <body>
    
    </body>
    </html>

    table用到的简单的样式:table.css

    @charset "utf-8";
      table{  
          border-collapse:collapse;
          border-width:60px;
      }
      tr td{
      border:#00F 2px solid;
      padding:10px;
      }

    JS1

    3.JS函数:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> JS函数 </title>
      <script type="text/javascript">
        //函数
        
        //无参函数
        show();
        function show(){
          alert("无参函数"+arguments.length);//传入的实参会被封装到数组arguments中
        }
        show(3,4,5);//show()依然会被调用,也就说JS不存在重载,纯粹按名调用
        
        //有参函数
        show2("abc",12)
        function show2(x,y){ 
         document.write(x+" "+y+"<br/>");//abc 12
        }
        
        
        //全局变量与局部变量
         var x=10;//全局变量
         function show3(x){
           x=4;//局部变量x被改变
         }
         show3(x);
         document.write("x="+x+"<br/>");//x=10
         
        
        //函数返回值
        function show4(){
          return "123";
        }
        document.write(show4());//123
    
        //在JS中函数本身就是一个对象,而函数名就是对象的名字
        function show5(){//show5指向该函数对象
          return "函数对象";
        }
        var x=show5;//将show5指向的对象的地址赋值给x,那么x也指向该对象
    alert(x);//将弹出整个函数
           
        //动态函数,参数和函数体都可以作为变量传递
        var dynamic=new Function("x","y","return x+y;");
        document.write("<br/>"+dynamic(3,4));//7
    
        //匿名函数
        var anonymity=function(){
         document.write("<br/>匿名函数被调用");
        }
        anonymity();
      </script>
     </head>
    
     <body>
      
     </body>
    </html>

    4.JS中自定义对象:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title>JS中自定义对象</title>
      <script type="text/javascript" src="animal.js"></script>
      <script type="text/javascript">
       //第一种初始化方式
       function Person(){
         document.write("进行初始化动作<br/>");
       }
       var p=new Person();//会调用上面函数
       p.name="zhangsan";//成员初始化
       p.age=10;
       
       p.getName=function(){//相当于定义成员函数
          return p.name;
       }
       document.write(p.getName()+"<br/>");//zhangsan
      
      //第二种初始化方式
      /*
      function Animal(name,sex){//特别类似Java构造函数
        this.name=name;
        this.sex=sex;
      }
      var animal=new Animal("lion","male");
      document.write(animal["name"]+" "+animal.sex);//两种方式都能取到成员属性值
      */
      
      //把对象封装到JS文件中
        document.write(animal.getName());
      </script>
     </head>
      
     <body>
      
     </body>
    </html>

    animal.js:

    /*JavaScript*/
      function Animal(name,sex){
        this.name=name;
        this.sex=sex;
      }
      var animal=new Animal("lion","male");
      animal.getName=function(){
          return animal.name;
       }

    5.JS的with语句与in语句

    ArrayTool.js

    /*JavaScript*/
    function ArrayTool(){
    
    }
    var ArrayTool=new ArrayTool();
    ArrayTool.getMax=function(arr){//getMax相当于ArrayTool对象的成员方法
       var max=arr[0];
       for(var i=1;i<arr.length;++i)
           if(arr[i]>max)
             max=arr[i];
        return max;
    }
    ArrayTool.getMin=function(arr){//同上
       var min=arr[0];
       for(var i=1;i<arr.length;++i)
           if(arr[i]<min)
             min=arr[i];
        return min;
    
    }
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> 简单封装与特有语句 </title>
    
     <script type="text/javascript" src="ArrayTool.js"></script>
     <script type="text/javascript">
       //使用ArrayTool.js中的方法
       var arr=[3,5,1,4,7];
       document.write("max="+ArrayTool.getMax(arr)
                      +",min="+ArrayTool.getMin(arr)+"<br/>");
    
    
    
        //with语句
        function Student(name,sex){
          this.name=name;
          this.sex=sex;
        }
        var stu=new Student("lisi","M");
        with(stu){//当属性和方法特别多时,也可以采用这种方式调用
                  //with确定对象作用范围
           document.write(name+"...."+sex+"<br/>");
        }
    
        
        //JS类似Java增强for循环语句
        for(s in stu){
          //document.write(s+"<br/>");//s依次取出stu对象中的属性
           document.write(s+"="+stu[s]+"<br/>")//stu[s]取出对象stu中属性相应的值
        }
        for(index in arr){
          document.write(arr[index]+"&nbsp;");
        }
     </script>
     </head>
    
     <body>
      
     </body>
    </html>

    JS4

    6.JS内部固有对象:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> 内部已定义好的对象 </title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
     </head>
     <script type="text/javascript">
        //1.String对象
        var str="abcdef"
        document.write(str.charAt(2)+" "
                       +str.link("http://www.baidu.com")+" "
                       +str.substr(2,9)+" "+str.substring(2,4)+"<br/>");
                       //c abcdef(超链接) cdef cd
        //2.Math对象
        for(var i=0;i<6;++i){
           document.write(parseInt(Math.random()*10+1)+"&nbsp;");  
           //需要得到整数,可以使用Global对象中的pareInt方法
        }
        
        //3.R进制<-->十进制
         var toHex=18;
         document.write("<br/>"+parseInt("12",16)+" "+toHex.toString(16))//18 12
        
        //4.获取日期
        var date=new Date();
        var week=["","","","","","",""];
        with(date){
         var month=getMonth()+1;//month也是从0开始
         month=month>9?month:("0"+month);//01,02...12
        
         document.write("<br/>"+getFullYear()+""+month+""+getDate()+"日 星期"+week[getDay()]);
        }
        
        
        //5.prototype(原型),也可以封装到.js文件使用,自定义对象没有prototype
        
        /*
        function getMax(arr){
            var max=arr[0];
            for(var i=1;i<arr.length;++i)
           if(arr[i]>max)
             max=arr[i];
           return max;
        }
        */
        Array.prototype.getZD=getMax;//Array.prototype 返回对象类型原型的引用。
                                     //Array.prototype.getZD=getMax;相当于向数组对象中
                                     //添加一个成员方法getZD
       
        var arr=[4,1,7,9];
        //document.write("<br/>"+"max="+arr.getZD(arr));//max=9
       //改进getMax方法
         function getMax(){
            var max=this[0];
            for(var i=1;i<this.length;++i)
           if(this[i]>max)
             max=this[i];
           return max;
        }
         document.write("<br/>"+"max="+arr.getZD());
        //向String中添加一个字符串变色方法
        function myColor(color){
    
          return "<font color='"+color+"'>"+this+"</font>";
      
        }    
        String.prototype.stringColor=myColor;
        document.write("<br/>abc".stringColor("red"));
        
        
        
        
        //6.回顾一下,去除String两端空格
        var str="       a b  ";
        var start=0,end=str.length-1;
        for( ;(start<=end)&&
            (str[start]==' '||str[end]==' '); ){
            if(str[start]==' ')
                 ++start;
            if(str[end]==' ')
                --end;
        }
        document.write("<br/>"+"--"+str.substring(start,end+1)+"--");//--a b--
        
     </script> 
     <body>
      
     </body>
    </html>

    JS5

  • 相关阅读:
    windows 10下ELK环境快速搭建实践
    Windows 10下搭建以太坊私有链环境
    线程状态转换图
    JAVA中IO技术:BIO、NIO、AIO
    MySQL MDL锁的阻塞问题 & online ddl的插队现象【转发】
    MySQL InnoDB MVCC 能否完全解决幻读?
    Linux 计算 存储 网络 统计命令
    MySQL B+ tree & B tree & Hash
    mmap学习总结
    Linux内存分配小结--malloc、brk、mmap【转】
  • 原文地址:https://www.cnblogs.com/yiqiu2324/p/3266193.html
Copyright © 2020-2023  润新知