javascript学习笔记(一)

一、基本数据类型:五种基本数据类型,分别为null、string、boolean、number、undefined;其中所有的数值类型为number类型,null是定义了变量并且复制为空的类型,而undifined为止声明,还没有进行赋值操作的变量。

二、引用数据类型:Object类型

三、在网页中使用javascript的三种方式:

        1、使用script标签(type现在的浏览器可以不指定),如下:

                     <script type="text/javascritp">

                                           JavaScript语句。。。

                      </scritp>

         2、从外部导入JS文件,也是使用script标签,如下:

                      <script src="../hello.js"></script>

         3、直接写在HTML标签中,eg: <input type="button" value="消息对话框"  οnclick="prompt("Hello JS!")"/>

四、javascript的变量和基本的循环语句和java类似,javascript对大小写是敏感的Function(不是标识符)与function不是同一个标识符,这里不做展开。

五、typeof检测变量的返回值,各个返回值和其对应的意思如下:

        undefined        定义变量但未对其赋值

        number           定义变量并对其赋值数值型数据

        string               定义变量并对其赋值用单引号或双引号引起的字符串

       boolean           true或false

       object               javascript中的对象、数组和null

六、数组

      1、 创建数组:var arrayName = new Array(size);或var arrayName = [ ];(这种方式常用,比较方便)

      2、访问数组:arrayName(index);

      eg:    var arr = new Array(4);

               arr[0] = "apple";

               arr[1] = "banana";

               arr[2] = "orange";

               arr[3] = "peach";

               虽然我这里定义了数组的大小为4但是任然可以   arr[20] = "berry";此时arr.length = 21(数组的下标从0开始),其中arr[4]到arr[20]为undefined,因为此时只是定义但未对其赋值。

       3、数组的属性:length;这里只要注意数组的下标从0开始即可。

       4、数组的常用方法:join() 将数组的素有元素放入一个字符串中,用指定的分割符进行分隔

   eg:var arr = [];
            arr[0] = "tao";
            arr[1] = "rui";
            arr[2] = "ke";
            arr[3] = "ji";
            var arrToStr = arr.join(",");
            alert(arrToStr);

     结果为:tao,rui,ke,ji

            sort(compareFunction:function),通过指定的方式对数组进行排序操作,一下操作对数组进行降序排序

  eg:var arr = [];
            arr[0] = 2;
            arr[1] = 18;
            arr[2] = 3;
            arr[3] = 42;
            arr[4] = 75;
            arr.sort(function myfun(a, b){
                return a>b ? true : alse;
            });
            alert(arr);

   结果为:[2, 3, 18, 42, 75]

            push();在数组末尾添加一个或n个元素并返回新数组的长度,

     eg:var names = ["John","ye","mgh"];
              var newLength = names.push("zxc");
              alert(newLength);

    结果为:newLength = 4;新数组为:["John","ye","mgh","zxc”];

七、JavaScript常用的输入输出函数

        alert("欢迎学习JS!");弹出一个警告框,参数为显示的内容

        prompt(“请输入您的姓名?”,“Jhon”);  弹出输入框,第二 个参数为输入框的默认值,第二个参数可以省略不写,该函数返回的是输入的内容(注意这里返回的内容都是string 类型的)

       confirm(“提示信息”);  弹出提示信息

八、JavaScript中的函数

        1、函数是完成特定功能的代码块

         2、函数分为JS提供的系统函数和用户自定义函数,函数不必定义在某个类中,直接定义

         3、常用的系统函数:parseInt(index,str);将string类型的变量转换为number类型的变量(整数),不是进行四舍五入是截取整数部分,eg:parseInt(3.5) = 3;

                                               parseFloat(str);将string类型的变量转换为number类型的变量(浮点数),eg:parseFloat(3.6) = 3.6;

                                               isNaN(args);如果args是number类的返回false,否则返回true,这个函数对于数字输入检测很有用

                自定义函数:格式:  function  functionname(args1,args2, . . . ) {

                                                                        要执行的JavaScript语句;

                                                                       return [value];                  // return语句可以省略

                                                }

                                       函数调用一般和表单事件一起调用,调用格式:事件名 = “functionname()”;

                                      匿名函数:定义:var fun= function(num) {

                                                                                   for(var i= 0;i<bum; i++) {

                                                                                              document.write(“hello ”+ i+"<br />");

                                                                                   }

                                                                        }

                                                           调用:<.input type="button" οnclick="fun(prompt('请输入循环的次数?'))” value="显示问候语">;      

                                  系统 函数使用实例,根据输入的数字和符号进行相应的四则运算:

                                               <!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>javascript函数</title>
        <script type="text/javascript">

            // 输入框
            function showInput(num) {
                 var input = parseFloat(prompt("请输入第"+num+"个数?"));
                 if(isNaN(input)) {
                     showInput(num);
                 }
                 return input;
            }
          
            // 运算符输入框
            function getYsf() {
                var ysf = prompt("请输入运算符?");
                var ysfs = ['+', '-', '*', '/', '%'];
                if(ysfs.indexOf(ysf) == -1){
                    ysf = getYsf();
                }
                return ysf;
            }
            
            // 计算结果
            function calc() {
                var num1 = showInput("一");
                var num2 = showInput("二");
                var ysf = getYsf();
                var reslut;
                switch (ysf){
                    case "+":
                        reslut = num1 + num2;
                        break;
                    case "-":
                        reslut = num1 - num2;
                        break;
                    case "*":
                        reslut = num1 * num2;
                        break;
                    case "/":
                        reslut = num1 / num2;
                        break;
                    case "%":
                        reslut = num1 % num2;
                        break;
                }
                alert("结果为:"+num1+ysf+num2+"="+reslut);
            }
        </script>
    </head>
    <body>
        <input type="button" οnclick="calc()" value="计算" />
    </body>
</html>


九、BOM(Brower Object Model)浏览器对象模型

        1、window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。

        2、由于window是顶层对象,所有由他调用的子对象可以不用显示的写出window,以下的两种写法是等价的:

                document.write("Hello JS!");                     window.document.write("Hello JS!");

        3、window对象的常用属性:history属性(有关访问过的URL信息)和location属性(URL为当前用户的URL信息)

                                                            history属性的方法:back();返回前面访问过的页面   history.back();

                                                                                                 forward();向前history.forward();

                                                                                                  go(1);也是向前,与forward()不同的是,它可以指定步数;eg:history.go(2);

                                                            location属性的方法:reload()方法刷新当前页面

                                                                                                   replace(url)页面跳转到指定的url处,无浏览器历史记录;eg:location.replace("heep://www.taobao.com");

                                                                                                   href(url);页面跳转,有浏览器历史记录,可以用history.back();返回上一个页面


十、window对象常用的函数:

         prompt();alert();confrim();方法上面已经介绍过,这里不在讨论;

         close();方法用来关闭用JavaScript打开的浏览器窗口(只能关闭通过JS打开的窗口);

         open(url,“”,“width:300px, height:300px”);打开url地址的页面;eg:open("http://www.sina.cn");  // 打开新浪手机网

                         第二个参数为空时每次总是打开新窗口,设置值时不重新打开新窗口,只在同一个页面打开,相当于指定窗口的id复用打开的第一个窗口

         setTimeout();在指定的毫秒数后调用函数或计算表达式 eg:function fun() {  alert("Hello JS!");   }   setTimeout(fun, 2000);    // 经过两秒后执行fun函数(只执行一次)

         setInterval();  在指定的周期(以毫秒计)来调用函数或表达式(循环执行)setInterval(fun, 2000);   // 每过两秒执行一次fun函数(循环执行)


         其中setTimeOut()、和setInterval();为定时函数;

            var funTag = setTimeOut("指定的函数", "等待的毫秒数");       //  funTag为setTimeOut函数返回的唯一标识

           var funFlag = setInterval("指定的函数", "间隔执行的毫秒数");      //  同理,funFlag为setInterval函数返回的唯一标识

         清除函数:

                           clearTimeOut(setTimeOut()返回的ID值);          //  eg:clearTimeOut(funTag);

                           clearInterval(setInterval()返回的ID值);              //   eg: clearInterval(funFlag);


实例一(实现四张图片轮播的效果):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>图片轮播</title>
        <script type="text/javascript">
            var i = 0;
            
            // 更换图片
            function changeImage() {
                var imgs = ['img/01.jpg', 'img/02.jpg', 'img/03.jpg', 'img/04.jpg'];
                document.getElementById("img1").src = imgs[i%imgs.length];
                i++;
            }
            var flag;
            
            // 开始
            function start() {
                flag = setInterval(changeImage, 1000);    // 间隔一秒更换一张图片
            }
            
            // 停止
            function stop() {
                clearInterval(flag);   // 清除定时函数
            }
        </script>
    </head>
    <body>
        <div>
            <img id="img1" src="img/01.jpg" />
        </div>
        <button οnclick="start()">开始</button>
        <button οnclick="stop()">停止</button>
    </body>

</html>

运行结果图如下:




十一、JavaScript内置对象

              1、Array :用于在单独的变量名中存储一系列的值。
              2、 String :用于支持对字符串的处理。
              3、Math :用于执行常用的数学任务,它包含了若干个数字常量和函数。
              4、Date :用于操作日期和时间。
             

               Math对象的主要函数:ceil()函数(天花板函数),Math.ceil(2.3) = 3;向上取整,floor()函数(地板函数),Math.floor(2.9) = 2;

                                                       random()函数,返回0和1之间的随机数,取值范围为[0,1),round()四舍五入函数,Math.round(2.4) = 4;

                                                       求返回范围在[min, max]之间的公式:Math.floor(Math.random() * (max - min + 1) + min);

                                                      eg:alert("返回5-40的数:"+Math.floor(Math.random() *(40-5+1)+5));   

             Date对象

                           var 日期对象 = new Date( 参数 );
                           var today=new Date();       // 返回当前日期和时间

以下是Date对象的两个使用实例:


一、用图片(0-9)动态显示当前时间:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>时间显示</title>
    </head>
    <style>
         span{
             font-size: 70px;
             font-family: "华文行楷";
             color: #FF0000;
         }
    </style>
    <script type="text/javascript">
        function f() {
            var date = new Date();
            var hour = date.getHours();
            var minut = date.getMinutes();
            var sec = date.getSeconds();
            document.getElementById("img1").src = "img/time_num_"+parseInt(hour/10)+".png";
            document.getElementById("img2").src = "img/time_num_"+parseInt(hour%10)+".png";
            document.getElementById("img3").src = "img/time_num_"+parseInt(minut/10)+".png";
            document.getElementById("img4").src = "img/time_num_"+parseInt(minut%10)+".png";
            document.getElementById("img5").src = "img/time_num_"+parseInt(sec/10)+".png";
            document.getElementById("img6").src = "img/time_num_"+parseInt(sec%10)+".png";
        }
        window.onload = setInterval(f, 1000);
    </script>
    <body>
        <span>当前时间:</span>
        <img id="img1" src="img/time_num_1.png" />
        <img id="img2" src="img/time_num_1.png" />
        <img src="img/time_num_colon.png" />
        <img id="img3" src="img/time_num_1.png" />
        <img id="img4" src="img/time_num_1.png" />
        <img src="img/time_num_colon.png" />
        <img id="img5" src="img/time_num_1.png" />
        <img id="img6" src="img/time_num_1.png" />
        </body>
</html>

效果图如下:



实例二:倒计时动态显示

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>显示离过年还有多久</title>
        <style>
            span{
                font-size: 70px;
                font-family: "华文行楷";
                color: #FF0000;
            }
        </style>
        <script type="text/javascript">
            var arr = [];
            function diff() {
                var nowDate = new Date();
                var msecond1 = nowDate.getTime();
                var endDate = new Date('2017-1-28');
                // var endDate= new Date(2017, 0, 28);
                var msecond2 = endDate.getTime();
                   arr[0] = parseInt(Math.abs(msecond1-msecond2)/1000/60/60/24);
                   arr[1] = 24-nowDate.getHours()-1;
                   arr[2] = 60-nowDate.getMinutes();
                   arr[3] = 60-nowDate.getSeconds();
            }
            
            function show() {
                diff();
                document.getElementById("img1").src = "img/time_num_"+parseInt(arr[0]/10)+".png";
                document.getElementById("img2").src = "img/time_num_"+parseInt(arr[0]%10)+".png";
                document.getElementById("img3").src = "img/time_num_"+parseInt(arr[1]/10)+".png";
                document.getElementById("img4").src = "img/time_num_"+parseInt(arr[1]%10)+".png";
                document.getElementById("img5").src = "img/time_num_"+parseInt(arr[2]/10)+".png";
                document.getElementById("img6").src = "img/time_num_"+parseInt(arr[2]%10)+".png";
                document.getElementById("img7").src = "img/time_num_"+parseInt(arr[3]/10)+".png";
                document.getElementById("img8").src = "img/time_num_"+parseInt(arr[3]%10)+".png";
            }
            window.onload = setInterval(show, 1000);
        </script>
    </head>
    <body>
        <div>
            <span>距离春节仅有:</span>
            <img id="img1" src="" />
            <img id="img2" src="" /><span>天</span>
            <img id="img3" src="" />
            <img id="img4" src="" /><span>时</span>
            <img id="img5" src="" />
            <img id="img6" src="" /><span>分</span>
            <img id="img7" src="" />
            <img id="img8" src="" /><span>秒</span>
        </div>
    </body>
</html>


运行结果图:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值