js(JavaScript)

xiaoxiao2025-11-07  4

一.js的简介    1.什么是js       js可以嵌套到HTML中(基于对象)和(事件触发)的脚本语言            特点         A.交互性         B.安全性   js不能直接访问本地磁盘         C.跨平台  浏览器只要具备js解析器     2.js能干嘛       1)js动态修改(新增、删除)HTML标签和CSS代码       2)js动态做校验数据     3)js的历史及组成       ECMAScript(js的基本语法和对象)   BOM(浏览器对象模型)    DOM(文档对象模型)     4)js的引用方式        A.内嵌脚本           <input type="button" value="button" οnclick="alert('XXX')"/>        B.内部脚本           <input type="button" value="button"/>            <script type="text/javascript">               alert('XXX');            </script>         C.外部脚本          1.创建一个js文件          2.在HTML中引入js脚本            <input type="button" value="button"/>            <script type="text/javascript" src="demo1.js"></script>               总结:         1.JS往哪儿放                          在不影响HTML页面加载效果情况下,越晚加载越好         2.编程建议  <script>引入外部文件的时候  标签中不建议写脚本内容 二.js的基本语法    1)变量      var a=12;      a="javascript";      a='哈哈';      var b=true;    2)原始数据类型(了解)      1)number:数字类型      2)string:字符串类型      3)boolean:布尔类型      4)null:空类型      5)undefined:未定义的             注意:           number  string  boolean 伪对象                         数据类型转换              number   boolean 转        string              toString()                            string   boolean 转      number              parseInt()              parseFloat()              boolean类型  parseInt() 不能转 number NaN              string类型  parseInt()可以转 number  '123哈哈456' 转'123'                            string   number  转  boolean              Boolean()              number转  boolean 可以  非0为true  0为false              string转boolean  可以   非空为true  空为false                            string   boolean  转 number              Number()              boolean类型   Number() 可以转 number true 1 false 0              string类型   Number() 如果是数字可以转  如果 '123哈哈'  转换结果 NaN                   3)引用数据类型        java:Object obj=new Object();        js:  var obj=new Object();     4)运算符        1.赋值运算符          =          var a=5;        2.算术运算符          + - * / % ++ --          +:遇到字符串  连接符 拼接          -:遇到字符串 转为数字  Number() 再计算          *:遇到字符串 转为数字  Number() 再计算          /:遇到字符串 转为数字  Number() 再计算  7/2=3.5  number        3.逻辑运算符           &&  ||        4.比较运算符           >  <  >=  <= == !=           == :忽略数据类型的 值比较           ===:全等   比较值与数据类型        5.三目运算符          3>2?"大于":"小于"        6.void运算符          <a href="javascript:void(0)">点击我吧</a>        7.类运算符          typeof() :判断数据类型  返回 数据的该类型          instanceof:判断类型   返回 布尔值          alert(typeof(obj));//object          alert(obj instanceof Object);//true               5)逻辑语句       if:条件           number转  boolean 可以  非0为true  0为false           string转boolean  可以   非空为true  空为false       switch:           jdk1.7 string       for:          for  in  *****          var arr=[1,2,3,"aa",true];            for(index in arr){              alert(arr[index]);            }

三.js的内置对象    1.Number      var myNum=new Number(value);      var myNum=Number(value);            方法:      toString 把数字转换为字符串,使用指定的基数。       valueOf 返回一个 Number 对象的基本数字值。     2.Boolean      var flag=new Boolean(value);    //构造函数      var flag=Boolean(value);        //转换函数             方法:      toString() 把逻辑值转换为字符串,并返回结果。       valueOf() 返回 Boolean 对象的原始值。     3.String      new String(s);      String(s);             方法          length 字符串的长度           charAt() 返回在指定位置的字符。           charCodeAt() 返回在指定的位置的字符的 Unicode 编码。           indexOf() 检索字符串。           lastIndexOf() 从后向前搜索字符串。           split() 把字符串分割为字符串数组。           substring() 提取字符串中两个指定的索引号之间的字符。           substr() 从起始索引号提取字符串中指定数目的字符。          toUpperCase() 把字符串转换为大写        4.Array        new Array();         new Array(size);         new Array(element0, element1, ..., elementn);                  var arr=[];         var arr=[1,"aa"];                  属性:           length 设置或返回数组中元素的数目。           方法:            join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。             pop() 删除并返回数组的最后一个元素             push() 向数组的末尾添加一个或更多元素,并返回新的长度。             reverse() 颠倒数组中元素的顺序。             sort() 对数组的元素进行排序        5.Date         var myDate=new Date()                   方法             getFullYear() 从 Date 对象以四位数字返回年份              getMonth() 从 Date 对象返回月份 (0 ~ 11)。              getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。              getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。              getTime() 返回 1970 年 1 月 1 日至今的毫秒数。              toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。 ****        6.Math          var pi_value=Math.PI;          var sqrt_value=Math.sqrt(15);                         注释:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),                                    像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把                Math 作为对象使用就可以调用其所有属性和方法。                       方法:             PI 返回圆周率(约等于3.14159)。              abs(x) 返回数的绝对值。              ceil(x) 对数进行上舍入。              floor(x) 对数进行下舍入。              round(x) 把数四舍五入为最接近的整数。              sqrt(x) 返回数的平方根。              pow(x,y) 返回 x 的 y 次幂。 **             random() 返回 0 ~ 1 之间的随机数。 ***       7.RegExp         var reg=new RegExp(pattern);                    可选参数: attributes         var reg=/^正则表达式$/                    属性方法:          [0-9]:数字          [A-Z]:A-Z          [a-z]:a-z          [A-z]:所有字母(大小写字母)          \d:代表数值          \D:非数值          \w:单词字符          \W:非单词字符          \s:查找的空白字符          \S:查找的非空白字符          n+:至少一次          n*:出现0次或多次          n?:出现0次或1次          {5}:出现5次          {2,8}:出现2~8次                    方法              test 检索字符串中指定的值。返回 true 或 false  四.js的函数    1.js函数定义方式      A.普通函数                   语法:            function 函数名(参数列表){函数体}                   实例:            function method(){               alert("XXX");            }            method();       B.匿名函数(闭包)           语法:           var 函数名=function(){}                    案例:              var method=function (){                 alert("XXX");              }             method();       C.对象函数(了解)                    语法:             new Function(参数1,参数2,参数3);                    注意点:             1.形参只能是string类型 ,最后一个只能是函数体             2.函数体也是string                     案例:                 var fn=new Function("a","b","alert(a+b)");                 fn(2,22);      2.函数中的参数问题        1.形参不用var来修饰        2.形参和是实参个数可以不一样(只多不少)               案例:                function fn(a,b,c){                     var sum=a+b+c;                     alert(sum);                     //arguments 数组内部对参数进行封装的对象                     for(var i=0;i<arguments.length;i++){                        alert(arguments[i]);                     }                  }                                    fn(1,2,3,4,5);       3.函数中返回值问题         1.定义函数的时候不用定义返回值类型  var         2.返回值可以通过return体现         案例:         function fn(a,b){            return a+b;          }          alert(fn(2,3));       4.js中的全局函数         1)编码问题            decodeURI() 解码某个编码的 URI。             encodeURI() 把字符串编码为 URI。                         decodeURIComponent() 解码一个编码的 URI 组件。             encodeURIComponent() 把字符串编码为 URI 组件。                         unescape() 对由 escape() 编码的字符串进行解码。             escape() 对字符串进行编码。                   2)强转           parseInt()           parseFloat()         3)           Number()           Boolean()         4)*****            eval(); 计算 javascript字符串  把它们作为脚本代码执行

五.js的事件****         事件         事件源         响应行为    1)事件的绑定方式***      A.将事件与响应行为内嵌到HTML代码中         <input type="button" value="button" οnclick="alert('XXX')"/>      B.将事件内嵌到HTML代码中,将响应行为封装成函数**         <input type="button" value="button" οnclick="fn()"/>         <script type="text/javascript">            function fn(){              alert('XXX');            }         </script>       C.事件与响应结果完全从HTML分离出来***          <input type="button" value="button123" id="btn"/>          <script type="text/javascript">            var btn=document.getElementById("btn");            //alert(btn.value);            btn.οnclick=function fn(){              alert('XXX');            }         </script>    2)常用的事件      A.onclick()点击事件      B.onchange()用户改变域的内容                  当用户改变域内容会触发该事件                  实现二级菜单联动                  案例:               <body>                <select id="city">                   <option value="bj">北京</option>                   <option value="tj">天津</option>                   <option value="sh">上海</option>                </select>                <select id="area">                   <option>昌平区</option>                   <option>海淀区</option>                   <option>朝阳区</option>                </select>             </body>             <script type="text/javascript">                   var city=document.getElementById("city");                   city.οnchange=function(){                       var option=city.value;                      // alert(option);                      switch(option){                         case 'bj':                              var area=  document.getElementById("area");                              area.innerHTML="<option value='cp'>昌平区</option><option value='hd'>海淀区</option><option value='cy'>朝阳区</option>";                              break;                         case 'tj':                              var area=  document.getElementById("area");                              area.innerHTML="<option value='tg'>塘沽区</option><option value='nk'>南开区</option>";                                               break;                         case 'sh':                              var area=  document.getElementById("area");                              area.innerHTML="<option value='pd'>浦东区</option>";                                               break;                      }                                          }             </script>           C.onblur 元素失去焦点         onfocus 元素获得焦点                  案例:              <body>                  <label for="txt">用户名:</label>                  <input type="text" name="username"   id="txt"/><span id="active"></span>             </body>             <script type="text/javascript">                   var txt=document.getElementById("txt");                   //元素获取焦点事件                   txt.οnfοcus=function(){                      //绑定友好提示                      var span= document.getElementById("active");                      span.innerHTML="用户名最少长度是六位";//动态绑定文字                      span.style.color="green";                   }                   //元素失去焦点事件                   txt.οnblur=function(){                      //绑定友好提示                      var span= document.getElementById("active");                      //alert(txt.value);                      if(txt.value.length<6){                          span.innerHTML="对不起您的格式有误";                          span.style.color="red";                      }else{                          span.innerHTML="√";                          span.style.color="green";                      }                   }             </script>      D.onmouseout 鼠标从某元素移开         onmouseover 鼠标被移到某元素之上               案例:        <body>              <div id="d1">div</div>         </body>         <script type="text/javascript">              var div=document.getElementById("d1");              div.οnmοuseοver=function(){                 this.style.backgroundColor="green";              }              div.οnmοuseοut=function(){                 this.style.backgroundColor="red";              }         </script>      E.        onload 某个页面或图像被完成加载                 等待页面加载完成之后,在执行onload事件里面的代码                案例:                <script type="text/javascript">                     window.οnlοad=function(){                        var span =document.getElementById("s");                        span.innerHTML="HELLOJS";                     }                 </script>                 </head>                 <body>                      <span id="s"></span>                 </body>     3)阻止事件的默认行为       IE:window.event.returnValue=false;(IE低版本)       w3c:传递过来的事件对象.preventDefault();       案例:        <body>             <!--  <a href="http://www.baidu.com">点击我吧</a> -->             <!--  <a href="demo1.html" οnclick="fn(event)">点击我吧</a> -->              <a href="demo1.html" οnclick="return false">点击我吧</a>         </body>         <script type="text/javascript">             function fn(e){                //IE:window.event.returnValue=false;(IE低版本)                //w3c:传递过来的事件对象.preventDefault();                if(e&&e.preventDefault){                   alert("w3c");                   e.preventDefault();//return false;                }else{                   alert("ie");                   window.event.returnValue=false;                }             }         </script>     4)js中的冒泡事件 阻止事件传播        IE:window.event.cancelBubble=true;//IE低版本        w3c:传递过来的事件对象.stopPropagation();        案例:          <body>              <div οnclick="fn1()" style="width: 100px; height: 100px; background-color: blue; padding: 50px;">                <div οnclick="fn2(event)" style="width: 100px; height: 100px; background-color: red;">                    XXX                </div>              </div>         </body>         <script type="text/javascript">            function fn1(){              window.alert("fn1");            }            function fn2(e){              //window.alert("fn2");              // IE:window.event.cancelBubble=true;//IE低版本              // w3c:传递过来的事件对象.stopPropagation();              if(e&&e.stopPropagation){                  alert("w3c");                  alert("fn2");                  e.stopPropagation();              }else{                 alert("ie");                 alert("fn2");                 window.event.cancelBubble=true;              }            }         </script> 六.js的BOM   BOM(浏览器对象模型)   alert();   window.alert();   1)window对象           弹框方式                    提示弹框  alert();                    确认弹框  confirm();                              确认弹框有返回值:点击确定 true  点击取消(叉) false                    输入弹框  prompt();                              输入框有返回值 :点击确定返回输入框的值   点击取消 null  ""        open()                   案例:               window.open("../jsCode/demo1.html");               定时器            A.setTimeout(函数,毫秒值); 过多少毫秒值后调用该函数 (只调用一次)                                  案例:                    window.setTimeout(function() {                         alert("XXX");                     }, 3000);            B. clearTimeout(参数);                      案例:                                 <body>                   <input type="button" value="button" οnclick="closer()"/>                 </body>                 <script type="text/javascript">                    /*  window.setTimeout(function() {                         alert("XXX");                     }, 3000); */                                          var timer;                     var fn=function(){                        alert("XXX");                        timer=setTimeout(fn, 3000);                     }                     var closer=function(){                         window.clearTimeout(timer);                     }                                          fn();                 </script>            C.setInterval(函数,毫秒值);//过多少毫秒之后 重复调用该函数              clearInterval(参数);清除定时任务                    案例:                 <body>                   <input type="button" value="button" οnclick="closer()"/>                 </body>                 <script type="text/javascript">                    var timer=setInterval(function() {                          alert("nihao");                    }, 3000);                    var closer=function(){                       window.clearInterval(timer);                    }                 </script>        案例:          注册成功之后,5秒钟跳转到某个页面       <body>              恭喜您,终于注册成功了,<span id="s" style="color: red; font-size: 100px;">5</span>秒钟页面自动跳转,如果不跳转<a href="../jsCode/demo1.html">点击这里</a>         </body>         <script type="text/javascript">            var time=5;            var timer;            timer=window.setInterval(function() {                   var span=document.getElementById("s");                   if(time>=1){                     span.innerHTML=time;                     time--;                   }else{                      //页面跳转 事件结束                      window.clearInterval(timer);                      location.href="../jsCode/demo1.html";                   }            }, 1000);         </script>        2.location对象          location.href="链接地址";          location对象不能省          window.location.reload();//页面重新刷新        3.history对象                历史记录          back()          forward()          go()                案例:               <a href="demo8.html">后一页</a>             <!-- <input type="button" value="上一页" οnclick="history.back()"/>             <input type="button" value="下一页" οnclick="history.forward()"/> -->             <input type="button" value="上一页" οnclick="history.go(-1)"/>             <input type="button" value="下一页" οnclick="history.go(1)"/> 七.js中DOM   DOM(文档对象模型)****                文档对象模型:用来操作页面元素       DOM:document节点                     作用:通过他对页面元素进行操作和定位       NODE操作          1.NODE的元素            A.元素类型            B.文本类型            C.文档类型            D.属性类型            E.注释类型          2.NODE的获取方式            1)通过元素获取              document.getElementById("elementid");******              document.getElementsByName("name");***              document.getElementsByTagName("input");***              document.getElementsByClassName("classname");            2)通过NODE关系获取引用              document.parentNode;//获取该元素的父节点              document.childNode;//获取该元素的子节点              document.firstChild;//获取该元素的第一个子节点              document.lastChild;//获取该元素的最后一个子节点              document.nextSibling;//获取该元素的下一个兄弟节点              document.previousSibling;//获取该元素的上一个兄弟节点            3)NODE的属性                                  节点中文              nodeType       nodeName          nodeVale                                    元素                          1            tagname             null                                   属性                           2             attr               属性值                                   文本                           3             #text              文本值                                   注释                           8             #comment           注释的文字                                   文档                           9             #document          null                                               4)NODE节点的增删改查              A.创建一个节点                1)创建一个元素的节点 document.createElement();                  2)创建属性节点:object.attr=val;                             object.setAttribute(sttr,value);                 3)创建一个文本节点                                    object.innerTHML=val;                            object.createTextNode();                                                                    B.添加节点                1.parentNode.appendChild(newNode);                                           说明 :                                                   向节点子节点末尾追加一个新的子节点,   如果文档中存在新的节点 ,将其从文档中删除,重新插入新的节点                               2.parentNode.insertBefore(newNode,exisingNode);                                          说明:                                                  如果文档中存在新的节点 ,将其从文档中删除,重新插入新的节点                                    3.parentNode.replace(newNode,oldNode);                                            说明:                                                  如果文档中存在新的节点 ,将其从文档中删除,重新插入新的节点                 4.parentNode.removeChild(node);                                           说明:                                                   找到 文档中存在 的节点,删除其子节点                ----------------------------------------------------------------------------------------------- 总结:      1.定位页面        <input type="text" name="uname" id="txt"/>        document.getElementById("txt");        document.getElementsByName("uname");        document.getElementsByTagName("input");      2.可以查看和修改属性        setAttribute(name,value);        getAttribute(name);      3.空格换行的处理                  使用层级关系访问节点              document.parentNode;//获取该元素的父节点              document.childNode;//获取该元素的子节点              document.firstChild;//获取该元素的第一个子节点              document.lastChild;//获取该元素的最后一个子节点              document.nextSibling;//获取该元素的下一个兄弟节点              document.previousSibling;//获取该元素的上一个兄弟节点              4.节点的操作             创建节点: createElement("节点名");             元素前添加新的节点:insertBefore("新节点","旧节点");             节点后拼接新节点:appendChild(新节点);             删除子节点:removeChild(节点);             克隆节点:cloneNode(deep); //false 只克隆该标签    true  克隆所有标签             替换节点:replaceChild(新,旧);       5.NODE操作表格         table对象中的属性和方法             属性:rows获取所有行             方法:              insertRow(行下标);              deleteRow(行下标);          tableRow属性和方法                属性:                cells获取所有单元格                rowIndex:获取行位置下标               方法:                  insertCell(单元格下标);                  deleteCell(单元格下标);            tableCell属性和方法                      属性:                      innerHTML:设置文本的HTML标签                      innerText:设置文本内容(纯文本)                      className:类样式          小结:          js可以修改CSS样式          1)元素对象 setAttribute("style","CSS样式");          2)通过className绑定CSS样式

转载请注明原文地址: https://www.6miu.com/read-5039218.html

最新回复(0)