JavaScript基础篇章(总结1)

前言

学习web,当然不能少了万能的javaScript,由于之前接触过javaScript基础语法,那么这次刚好派上用场了,就是感叹 “书到用时方恨少”,脚踏实地慢慢学咯,这里简单总结记录下这几天复习的js语法和demo,时时记,才能不至于忘得太快~~~

Ⅰ.简述

1.javaScript的特点:

  1. 安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互。
  2. 跨平台性。(只要是可以解释Js的浏览器都可以执行,和平台无关。)

2.js(javaScript的简称)和java的不同点:

  1. JS是Netscape公司的产品,Java是Sun公司的产品
  2. JS是基于对象,Java是面向对象。
  3. JS只需解释就可以执行,Java需要先编译成字节码文件,再执行。
  4. JS是弱类型,Java是强类型。

3.js由3部分组成:

  1. ECMAScript
  2. Bom(全称Browser Object Model浏览器对象模型)
  3. Dom(全称Document Object Model文档对象模型)

4.ECMASCRIPT 中有5种基本数据类型::

  1. Undefined
  2. null
  3. Boolean
  4. Number
  5. String

5.类型总结:

5种基本数据类型:Undefined, null,Boolean,Number和String

所有的数值都是number类型,字符和字符串都是string类型
布尔是boolean类型,如果一个变量未定义,那么类型是undefined

6.js引入方式和位置:

向HTML页面插入JavaScript的主要方法

  1. JS代码存放在标签对中。
  2. 使用script标签的src属性引入一个js文件。(方便后期维护,扩展)例:

7.区分大小写:

与 Java 一样,变量、函数名、运算符以及其他一切东西都是区分大小写的

8.变量:

变量是弱类型的,与 Java不同,ECMAScript 中的变量无特定的类型,定义变量时只用 var 运算符,可以将它初始化为任意值。

9.变量使用细节:

  1. var关键字在定义变量的时候可以省略不写
  2. 变量名可以重复,后面的将覆盖前面的变量
  3. 变量的类型取决于值的类型

10.运算符:

  1. 加法运算符的注意点

    • ECMAScript 中的加法也有一些特殊行为:某个运算数是 NaN,那么结果为 NaN;
    • 如果两个运算数都是字符串,把第二个字符串连接到第一个上。如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串。
  2. 乘/除法运算符基本和java语言中的相同

  3. 比较运算符的注意点

    • 两个字符串进行比较,会转化为字符之后进行比较;
    • 一个数字和一个字符串进行比较,字符串会转换成数字,再比较。
  4. 逻辑运算符基本和java语言中的相同

  5. 赋值运算符基本和java语言中的相同

    乘法/赋值(*=)
    除法/赋值(/=)
    取模/赋值(%=)
    加法/赋值(+=)
    减法/赋值(-=)
    
  6. 三目运算符基本和java语言中的相同

Ⅱ.练习

注释:下面的每个demo都可以拷贝在文本然后运行,运行方式也是很简单的,那么效果图就懒得贴了,下面的注释说明也非常详细.

1.先来个for练习,同样的需求,C和java都实现过了,那么用js来实现下


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>javaScript for 练习</title>
    </head>
    <body>
            <script type="text/javascript">
                //输出一个6行6列的的 *正方形
                for(var i=0 ;i<6 ;i++){
                    for(var j=0 ; j<6 ;j++){
                        document.write(" * ");
                    }
                    document.write("<br/>");
                }
                document.write("<hr/>");

                //输出 *三角钱
                for(var i=1 ; i<6 ; i++){
                    for(var j=0 ; j<i ; j++){
                        document.write(" * ");
                    }
                    document.write("<br/>");
                }
                document.write("<hr/>");

                //输出九九乘法表
                for(var i=1 ; i<=9 ; i++){
                    for(var j=1 ; j<=i ; j++){
                        document.write(j + "*" + i + "=" + j*i + "&nbsp;&nbsp;&nbsp;");
                    }
                    window.document.write("<br/>");
                }

            </script>
    </body>
    </html>

2.需求:移动到小图片区域内,旁边出现大图片:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js 事件监听</title>
    </head>
    <body>
            <!--小图片-->
            <img src="img/small.png" width="80" id="wlh"/>
            <br/>
            <!--大图片,默认距离左边80px,默认不显示的-->
            <img src="img/big.png" width="400" style="margin-left: 80px;display: none;" id="big"/>
    </body>

        <script type="text/javascript">
            function myPic(){
                var small = document.getElementById("wlh");     //查找小图片
                var big = document.getElementById("big");       //查找大图片

                small.onmouseenter = display;                   //鼠标进入图片区域的事件
              //  small.onmousemove = display;                  //鼠标在图片区域内移动的事件
                small.onmouseleave = nodisplay;                 //鼠标离开图片区域的事件
            }

            function display(){                                 //函数功能:让图片显示
                big.style.display = "block";
            }
            function  nodisplay(){                          //函数功能:让图片隐藏
                big.style.display = "none";
            }
            //窗体加载完毕后执行该函数
            window.onload = myPic();

        </script>

    </html>

3.引用类型String:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js 引用类型String体验</title>
    </head>
    <body>
            <script type="text/javascript">
               /* var a = "abc";
                document.write(typeof a + "<br/>");         //string

                var b = new String("abc");
                document.write(typeof b + "<br/>");         //object*/

    //-------------------------------------------------------------------------------------------------------

               //获取构造函数
                var a = "wyk";
                document.write(a.constructor + "<br/>");    //输出:function String() { [native code] }
                document.write(typeof a.constructor);       //输出:function


               document.write("<hr/>");
    //-------------------------------------------------------------------------------------------------------
                //通过构造函数创建String对象
                var a = new String("jack");
                var b = new String("jack");
                document.write(a + "," + b + "<br/>");          //jack,jack
                document.write(a==b);                            //false
                document.write("<br/>");
                document.write(a.valueOf() == b.valueOf());     //true
                document.write("<br/>");

               document.write("<hr/>");
    //-------------------------------------------------------------------------------------------------------
                //练习属性
               var c = "Hello World";
               document.write(c.length + "<br/>");          //输出: 11

                document.write("第五章".anchor("ch1") + "<br/>");      // 第五章
                document.write("第五章".blink() + "<br/>");            //第五章
               //   返回在指定位置的字符。
                document.write("第五章".charAt(0) + "<br/>");          //第
                document.write("abc".charCodeAt(0) + "<br/>")           //97

               document.write("第五章".concat("abcde") + "<br/>");       //第五章abcde
               document.write("第五章".fontcolor("#ff0000") + "<br/>");        //字体变为红色
               document.write("第五章".indexOf("五") + "<br/>");                // 1
               document.write("第五章".italics() + "<br/>");                       //斜体
               document.write("第五章".link("http://www.baidu.com") + "<br/>");                      //下划线,点击可以链接到其他网页

               document.write("helloworld".replace(/l/g,"L") + "<br/>");                        //将l 换位L ,木有写g,表示第一个换而已

    //-------------------------------------------------------------------------------------------------------
               document.write("<hr/>");

                var names = "jack - lin - zhong".split("-");
                for(var temp in names) {
                    document.write(names[temp] + "<br/>");          //这里的temp 应该是索引
                }

                document.write("helloworld".substr(1,2) + "<br/>");         //el
                document.write("helloworld".substring(1,2) + "<br/>");      //e
                document.write("helloworld".toUpperCase() + "<br/>");       //HELLOWORLD

                document.write(new String("java").toString() + "<br/>");                             //java
                document.write(new String("java").toString() == new String("java").toString());     //true
                document.write("<br/>")
                document.write(new String("java") == new String("java"));                        //false
                document.write("<br/>")
                document.write("abc" == "abc");                                                     //true

            </script>
    </body>
    </html>

4.引用类型Number:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js 引用类型Number体验</title>
    </head>
    <body>
            <script type="text/javascript">
                var a = 12;
                var b = new Number(12);
                document.write(a +"," + b + "<br/>");                 //12,12
                document.write(a == b);                                //true
                document.write("<br/>");
                document.write(a === b );                  //false
                document.write("<br/>");
                document.write(new Number(12) == new Number(12));      //false
                document.write("<br/>");
                document.write(new Number(12) === new Number(12));       //false
                document.write("<br/>");

                document.write(new Number(12).valueOf() == new Number(12).valueOf());       //true
                document.write("<br/>");
                document.write(new Number(12).valueOf() === new Number(12).valueOf());      //true

                document.write("<hr/>");
    //-------------------------------------------------------------------------------------------------------
                document.write("Number的最大值:" + Number.MAX_VALUE + "<br/>");
                document.write("Number的最小值:" + Number.MIN_VALUE + "<br/>");


                document.write(new Number(12).toString(10) + "<br/>");          //12   ,10进制
                document.write(new Number(12).toString(2) + "<br/>");           //1100 ,2进制
                document.write(new Number(12).toString(8) + "<br/>");           //14    ,8进制
                document.write(new Number(12).toString(16) + "<br/>");          //c     ,16进制
                document.write("<br/>");

                document.write(new Number(12.12345) + "<br/>");
                document.write(new Number(12.12345).toFixed() + "<br/>");          //默认没有小数,即= 12
                document.write(new Number(12.12345).toFixed(2)+ "<br/>");          //留下两个小数位
                document.write(new Number(12.12345).toFixed(3) + "<br/>");          //留下三个小数位

            </script>

    </body>
    </html>

5.引用类型Boolean:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js 引用类型Boolean体验</title>
    </head>
    <body>
        <script>
            var a = new Boolean(false);
            document.write("a.constructor===== " + a.constructor + "<br/>");            //输出: function Boolean() { [native code] }
            document.write("a.toString ====" + a.toString() + "<br/>");                 //输出 : a.toString ====false
            document.write("a.valueOf ====" + a.valueOf() + "<br/>");                   //输入:   a.valueOf ====false

            if(a.valueOf()){
                document.write("条件成立<br/>");
            }else{
                document.write("条件不成立<br/>");
            }

        </script>
    </body>
    </html>

6.Math类:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js Math类体验</title>
    </head>
    <body>
            <script type="text/javascript">
                document.write(Math.ceil(12.34) + "<br/>");                          //13       最大的整数
                document.write(Math.ceil(12.01) + "<br/>");                          //13       最大的整数
                document.write(Math.floor(12.34) + "<br/>");                         //12       最小的整数
                document.write(Math.floor(12.01) + "<br/>");                         //12       最小的整数
                document.write(Math.round(12.54) + "<br/>");                         //13       四舍五入
                document.write(Math.round(12.35) + "<br/>");                         //12       四舍五入
                document.write(Math.random() + "<br/>");                             //0~1      随机数
                document.write(Math.max(12, 100, -1, 200, 320, 500) + "</br>");         //500   求最大数
                document.write(Math.min(12, 100, -1, 200, 320, 500) + "</br>");         //-1    求最小数

            </script>
    </body>
    </html>

7.Date类体验:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js Date类体验</title>
    </head>
    <body>
            <span id="myDate"></span>

    </body>

            <script type="text/javascript">

      //---------------------------------- window.setTimeout() 的练习--------------------------------------
           /*     function showDate(){
                    var date = new Date();

                    var str = date.getFullYear() + "年" + (date.getMonth()+1) + "月" + date.getDate() + "日,星期" + date.getDay() + " "+
                                    date.getHours() + "时" + date.getMinutes() + "分" + date.getSeconds() + "秒" ;

                    var span = document.getElementById("myDate");       //找寻span标签
                    span.innerHTML = str.fontcolor("red");              //给Span标签设置标签体内容
                    window.setTimeout("showDate()",1000);               //延时一秒钟之后执行
                }

                showDate();            //调用函数*/



    //---------------------------------- window.setInterval() 的练习---------------------------------------

                var span1 = document.getElementById("myDate");
                function showDate01(){
                    var nowDate = new Date();                       //获取系统时间,即本机时间

                    var str1 = nowDate.getFullYear() + "年" + (nowDate.getMonth()+1) + "月" + nowDate.getDate()
                            + "日,星期" + nowDate.getDay() + " "+
                            nowDate.getHours() + "时" + nowDate.getMinutes() + "分" + nowDate.getSeconds() + "秒" ;

                    span1.innerHTML = str1.fontcolor("blue");
                }

                function startDate(){
                    //之所以在这里先调用showDate01,是因为刚开始时setInterval会延长一秒,导致界面出现一秒钟的空白
                     showDate01();
                     window.setInterval("showDate01()",1000);            //每经过指定毫秒值执行指定的代码

                }

                startDate();
            </script>

    </html>

8.数组体验:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js 数组体验</title>
    </head>
    <body>
    </body>

            <script type="text/javascript">
                var arrs = ["aa","bb","ccc"];

                document.write(arrs + "<br/>");             //aa,bb,ccc
                for(var i in arrs){
                    document.write(arrs[i] + "<br/>");      //aa  bb  ccc
                }

                document.write("<hr/>");
                for(var j=0;j<arrs.length;j++){
                    document.write(arrs[j] + "<br/>");      //aa  bb  ccc
                }

                document.write("<hr/>");

                arrs[0] = "www";
                arrs[2] = "kkkkkk";
                arrs[5] = "111111";                             //可变长的,会将数组里的元素有三个变为6个
                for(var j=0;j<arrs.length;j++){
                    document.write(arrs[j] + "<br/>");      //aa  bb  ccc
                }


                document.write("<hr/>");

                var arrss = new Array(20);
                for(var a=0;a<arrss.length;a++){
                    document.write(arrss[a] + "<br/>");    //都是 undefined
                }

                document.write("<hr/>");

                var arrsss = new Array("Hello World");
                document.write("----arr length---->" + arrsss.length + "<br/>");
                for(var s=0;s<arrsss.length;s++){
                    document.write(arrsss[s] + "<br/>");    //都是 undefined
                }


                document.write("<hr/>");

                var arr = new Array();
                arr[0] = "aa";
                arr[1] = "bb";
                arr[6] = 'xx';
                document.write(arr + "<br/>");
                //遍历数组
                for (var i = 0; i < arr.length; i++) {
                    document.write(arr[i]+"<br/>");
                }
                //下标越界时:
                var arr = ["aa", "bb"];
                document.write(arr[200]);
                // 显示undefined


                /**
                 * 上面输出结果:
                 *           aa,bb,,,,,xx
                 *
                             aa
                             bb
                             undefined
                             undefined
                             undefined
                             undefined
                             xx

                             undefined
                 */

                document.write("<hr/>");

                var sortArr = new Array("hello","b","world","none","a");
                document.write("sort toString ====" + sortArr + "<br/>");
                sortArr.sort();
                document.write("sort toString ====" + sortArr + "<br/>");           //  a,b,hello,none,world


                document.write("<hr/>");


                var a =["a","b","c"];
                document.write(a + "<br/>");                            //a,b,c
                document.write(typeof a + "<br/>");                     //object
                document.write(a.concat([100,200]) + "<br/>");          //a,b,c,100,200

                var strings = a.concat([100,200],[500,5]);
                document.write(typeof strings + "<br/>");               //object

                var b = a.join("$");
                document.write(b + "<br/>");                            //a$b$c
                document.write(typeof b + "<br/>");                     //string

              //  document.write(a.pop() + "<br/>");                    //c,将最后一个元素c 从数组中删除
                document.write(a.push(100,154) + "<br/>");              //5,返回添加之后的数组的长度
                document.write(a + "<br/>");                            // a,b,c,100,154

                document.write(a.toString() + "<br/>");                 //a,b,c,100,154

                document.write(typeof a + "<br/>");                 //object
                var c = a.valueOf();
                document.write(typeof c + "<br/>");                 //object


                var sortaaaa = ["d","da","a","c","1"];
               /* sortaaaa.sort();                                输出:  1,a,c,d,da
                document.write(sortaaaa + "<br/>");*/

                sortaaaa.sort(compareTo);
                document.write(sortaaaa + "<br/>");

                function compareTo(a, b){
                    return a - b;
                }

            </script>

    </html>

9.自定义对象:


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>js 自定义对象体验</title>
    </head>
    <body>

    </body>
        <script type="text/javascript">
    /*

     //-----------------------------Object 方式-------------------------------------------------

            var person = new Object();
            person.name = "wyk";
            person.age = 18;
            person.sayHello = function () {
                document.write(this.name + "," + this.age + "<br/>");
            }
            person.sayHello();

    //-----------------------------------------------------------------------
            document.write("<br/>");

            var student = new Object();
            student.name = "lxf";
            student.age = 16;
            student.gan = "girl";
       //   document.write(student.toString() + "<br/>");           //[object Object]
            student.sayDetail = function () {
                document.write(this.name + "," + this.age + "," + this.gan);
            }

            student.sayDetail();
     */

    //--------------------------------------自定义无参构造函数对象---------------------------
            function Person(){
                //window.document.write("constructor<br/>");
            }
            var person = new Person();
            person.name = "gg";
            person.age = 17;
            person.gan = "super man";

            person.work = function () {
                window.document.write(this.name +","+ this.age +"," + this.gan);
            }

            window.document.write(person.constructor  + "<br/>");
            window.document.write(person.name +","+ person.age +"," + person.gan + "<br/>");
            person.work();


    //--------------------------------------自定义有参构造函数对象------------------------------
            document.write("<hr/>");

            function Student(name,age){
                this.name = name;
                this.age = age;
                this.study = function () {
                    window.document.write(this.name + ":" + this.age);
                }
            }

            var student = new Student("yyyyy",78);
            student.study();


    //--------------------------------------json方式定义对象----------------------------------
            document.write("<hr/>");

            var teacher = {
                name:"小王",
                age:28,
                classtify:"数学",
                teach: function () {
                    window.document.write(this.name + "," + this.age + "," + this.classtify);
                },
                play:function(){
                    window.document.write("play play....<br/>");
                }
            };
            document.write(teacher.constructor + "<br/>");          //function Object() { [native code] }
            teacher.play();
            teacher.teach();                                        //小王,28,数学

        </script>
    </html>

Ⅲ.总结

这篇幅也够长够乱的,难免有错误,还请走过路过看过的帅比靓比帮忙指定一二;敲这些demo也是有够费时间的,那我可以不敲吗?光说不练可不行,还是挤挤时间敲吧!接着学习,88

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章