杨石林吧 关注:5贴子:121
===========
JavaScript
===========
简称JS
基于对象和事件驱动,具有相对安全的客户端脚本语言


1楼2014-10-29 16:17回复
    =========
    引擎
    =========
    V8 google
    Node.js 服务端运行


    2楼2014-10-29 16:17
    回复
      ============================
      如何在html中使用JavaScript?
      ============================
      1.使用标签
      <script>
      //js代码
      //echo *测试*; php代码
      document.write("测试");
      </script>
      2.写在特定属性中
      <a href="javascript:alert(*让你点你还真点*);">点一下</a>
      3.写在事件中
      <div onclick="alert(*再点弄死你*)">千万别点</div>
      4.写在外部文件中,扩展名通常是js
      <script src="01.js"></script>


      3楼2014-10-29 16:17
      回复
        =========
        执行顺序
        =========
        从上到下
        head中的js,页面中的js(将此段Js放置在body标签之外亦为此顺序),body标签onload事件中的js.
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
        <html>
        <head runat="server">
        <title>测试js的执行顺序</title>
        <script language="javascript" type="text/javascript"><!--
        var a = "这是一段在Header里面的JS代码";
        alert(a);
        // --></script>
        </head>
        <body onload="javscript:alert(*这是在body的Onload事件中的代码!*);">
        <form id="form1" runat="server">
        <div>
        <p>测试一下js的执行顺序</p>
        </div>
        </form>
        <script language="javascript" type="text/javascript"><!--
        var a = "这是一段页面最后的JS代码";
        alert(a);
        // --></script>
        </body>
        </html>


        4楼2014-10-29 16:17
        回复
          ===========
          区分大小写
          ===========
          JS严格区分大小写,如Test和test是不一样的
          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8">
          <title></title>
          </head>
          <body>
          <script type="text/javascript">
          //错的 因为js中,严格区分大小写,正确应该是alert()
          Alert("test");
          </script>
          </body>
          </html>


          5楼2014-10-29 16:18
          回复
            =======================
            代码缩进(对空白的处理)
            =======================
            空格
            空行通过将逻辑相关的代码放到一起来增加可读性。
            空格应该用于如下情况:
            1,关键字后面跟“(”(左圆括号)时应该用一个空格隔开。
            2,方法名和方法的“(”(左圆括号)之间不要有空格。这利于区分关键字和方法调用。
            3,所有的二元操作符,除了“.”(圆点)、“(”(左圆括号)和“[”(左中括号),都应该使用一个空格来和操作数隔开。
            4,一元操作符和操作数之间不应该使用空格隔开,除了操作符是一个单词时,如typeof。
            5,for语句控制部分的每个“;”(分号)应该在后面跟一个空格。
            6,每个“,”(逗号)后面应该跟一个空格。


            6楼2014-10-29 16:18
            回复
              ===============
              常用的调试方法
              ===============
              php: var_dump() echo print_r()
              js:
              document.write()
              alert()
              console.log();
              大段代码注释,快速定位哪个区域代码有问题
              <script type="text/javascript">
              alert(3333);
              alert(3333);
              alert(3333);
              alert(3333);
              alert(4444);
              alert(4444);
              /*
              echo 3333;
              alert(12345);
              alert(4444);
              alert(4444);
              */
              </script>


              7楼2014-10-29 16:18
              回复
                =====
                规范
                =====
                <!DOCTYPE html>
                必须写上DTT头


                8楼2014-10-29 16:18
                回复
                  =====
                  分号
                  =====
                  如果语句独占一行,代码结束的分号,可有可无
                  换行,就代表一句代码结束
                  不是所有的换行符,都解析为分号,只有当缺少分号后,代码无法正确解释时,js才会自动加分号
                  编码风格:不要省略分号
                  <script type="text/javascript">
                  var a
                  =
                  5
                  alert(a)
                  </script>
                  <script type="text/javascript">
                  var a=5
                  alert(a)
                  </script>
                  <script type="text/javascript">
                  var a=5;
                  alert(a);
                  </script>


                  9楼2014-10-29 16:19
                  回复
                    ======================================
                    直接量(有的书中叫常量,不是php的常量)
                    ======================================
                    单双引号在js中,一样,都不解析变量
                    良哥说:推荐字符串用双引号
                    <script type="text/javascript">
                    //直接量
                    a=12;
                    a=1.2;
                    a="你好";
                    a=*你好*;//单双引号在js中,一样,都不解析变量
                    a=true;
                    a=false;
                    a=null;
                    a=/[0-9]/; //正则对象
                    a={name:"jack",age:18}; //对象
                    a=[2,5,7,8]; //数组
                    //alert(a[1]);
                    </script>


                    10楼2014-10-29 16:19
                    回复
                      =====
                      注释
                      =====
                      //单行注释
                      /*多行注释*/
                      没有php的#
                      mysql: /* */ # --
                      css: /* */


                      11楼2014-10-29 16:19
                      回复
                        =======
                        标识符
                        =======
                        字母、数字、下划线、$。不能以数字开头。
                        不能使用关键字和保留字
                        <script type="text/javascript">
                        $=5;
                        alert($);
                        //if=6; //错的,if是关键字
                        </script>


                        12楼2014-10-29 16:19
                        回复
                          ============
                          声明变量***
                          ============
                          直接使用标识符作为变量名,不能使用关键字和保留字。
                          语法:
                          var 变量名;
                          可以声明的同时赋值
                          var name="jack";
                          也可以不声明,直接使用
                          age=18;//不建议这么做
                          如果直接给一个未声明的变量赋值,会自动声明该变量
                          如果直接使用一个未声明的变量,语法错误
                          <script type="text/javascript">
                          //age=18;
                          alert(age);
                          alert(333);
                          </script>


                          13楼2014-10-29 16:20
                          回复
                            =======
                            保留字
                            =======
                            1.关键字 if else return var this null new ......
                            2.保留字 class const extends export ......
                            3.以前版本的保留字 abstract
                            4.js预定义的全局变量和函数 Number Function Array NaN ......
                            <script type="text/javascript">
                            $=5;
                            alert($);
                            //if=6; //错的,if是关键字
                            </script>


                            14楼2014-10-29 16:20
                            回复
                              ================
                              变量的作用域***
                              ================
                              1.不在函数中声明的,是全局变量,可以直接在任何地方使用(与php不一样)
                              2.在函数中声明的是局部变量,只在当前函数和子函数中有效
                              <script type="text/javascript">
                              //变量
                              var num=8;
                              function test(){
                              //函数中,可以直接访全局变量
                              alert(num);
                              }
                              test();
                              function test2(){
                              //局部变量
                              var age=18;
                              alert(age)//18
                              }
                              test2();
                              //不能访问局部变量age
                              //alert(age);//报错
                              function test3(){
                              //局部变量
                              var a=19;
                              test4();
                              function test4(){
                              //局部变量可以在子函数中直接使用
                              alert(a);
                              }
                              }
                              test3();
                              </script>
                              3.函数可以嵌套,每个函数都有自己的作用域,因此会出现几个作用域嵌套的情况
                              <script type="text/javascript">
                              function test(){
                              var a=19;
                              function test2(){
                              //alert(a);//19
                              var b=5;
                              test4();
                              function test4(
                              //a 19
                              //b 5
                              );
                              }
                              function test3(){
                              //alert(a);//19
                              //alert(b);//没有
                              }
                              test2();
                              test3();
                              //alert(b);//没有,不能访部test2中的局部变量
                              }
                              test();
                              </script>
                              4.如果在函数中声明变量时,忘记写var关键字,这个变量是全局的
                              <script type="text/javascript">
                              function test(){
                              //在函数中,直接给未声明的变量赋值时,会自动声明一个全局变量。
                              a=19;
                              }
                              test();
                              alert(a);//19
                              </script>
                              变量使用前,都要先声明。全局变量,能不能,就不用。
                              <script type="text/javascript">
                              //变量使用前,先声明,每一个变量声明时,都要写注释
                              function test(){
                              //姓名
                              var name;
                              //年龄
                              var age;
                              //其它代码
                              }
                              </script>


                              15楼2014-10-29 16:20
                              回复