JavaScript基础知识概述

xiaoxiao2021-02-28  171

JavaScript基础知识小结

1.JavaScript的简介

  是基于对象和事件驱动的语言,应用于客户端

2.js的特点

  * 交互性:信息的动态交互   * 安全性:js不能访问本地磁盘的文件   * 跨平台性:只要能支持js的浏览器,都可以运行

3.JavaScript与Java的区别

      * 开发公司不同    * js是基于对象的,java是面向对象的    * java是强类型的语言,js是弱类型的语言    * js只需要解析就可以执行,而java需要先编译再执行

4.js的组成

    * ECMAScript:有ECMA组织制定的js的语法,语句等   * BOM:浏览器对象模型   * DOM:文档对象模型

5.js与html的结合方式

    * 使用一个标签      <script type="text/javascript">js代码</script>   * 使用script标签,引入一个外部的js文件      <script type="text/javascript" src="js代码路径"></script>     使用此种方式时,就不要再script标签里面再写js代码了,不会执行

6.js的原始类型和声明变量

   * string:字符串    * number:数字类型    * boolean:布尔类型    * null:表示对象引用为空    * undifined:定义一个变量,没有赋值     ** 注意:定义变量,都使用关键字var     ** typeof(变量名称);查看当前变量的数据类型     ** 直接向页面输出语句         document.write();         可以向页面输出固定值,变量和HTML代码    **  js语句和java语句类似    **  字符串的相加和相减操作          var str="123";  alert(str+1);       * 相加的时候,和java一样,做的是字符串连接       * 相减的时候,做的是相减的运算,如果不是数字,会提示NaN    ** == 和 ===的区别        ==:比较的只是值        ===:比较的是值和类型

7.js数组的定义

   * var arr=[1,"2",true];  定义一个数组,包含三个元素    * var arr=new Array(5);  定义一个数组,数组的长度是5    * var arr=new Array(1,2,4);  定义一个数组,包含三个元素     ** 数组有属性length     ** 数组的长度是可变的     ** 数组可以存放不同数据类型的数据

8.js的函数

  * 1.使用关键字function    ** function 方法名(参数列表){   方法体;   返回值可有可无(根据实际需要);       }   * 2.匿名函数    ** function(参数列表){     方法体;   返回值可有可无(根据实际需要);       }       **<script type="text/javascript"> function add(a,b){ var sum=a+b; return sum; } alert(add(2,6)); </script>    **<script type="text/javascript"> var add=function(a,b){ var sum=a+b; alert(sum); } add(2,6);       </script>   * 3.动态函数(用得少,了解一下):使用到js里的一个内置对象Function     new Function("参数列表","方法体和返回值");    <script type="text/javascript"> var add=new Function("a,b","var sum=a+b;return sum;"); alert(add(2,6));   </script>

9.* js的全局变量和局部变量

   -- 全局变量:在script标签里面定义的变量,这个变量在页面中的js部分都可以使用,即:                 在方法外部使用,在方法内部使用,在另一个script标签中使用    -- 局部变量:在方法发内部定义一个变量,只能在方法内部使用   * script标签放在的位置     建议把script标签放到</body>后面    IE浏览器自带调试工具,F12调试

10.js的string对象

   * 方法和属性     ** 属性 length:字符串的长度     ** 方法       ***与html相关的方法          -bold():加粗         -fontcolor():设置字符串的颜色 -fontsize():设置字体的大小 -link():将字符串显示成超链接 -sub():下标 -sup():上标       ***与java相似的方法          -concat():连接字符串 -charAt():返回指定位置的字符 -indexOf():返回字符串位置 -split():切分字符串成数组 -replace():替换字符串   *传递两个参数:第一个参数是原始字符,第二个参数是替换成的字符 -substr()与substring():截取字符串   *substr():两个参数,从第几位开始,向后截取几位              *substring():两个参数,从第几位开始,到第几位结束, 但不包括结束位

11.js的Array对象

   * var arr=[];  创建一个空数组    * 属性:length    * 方法:     ** concat();  数组的连接     ** join();   根据指定的字符分割数组     ** push();   向数组末尾添加元素,并返回数组新的长度                 注意:如果添加的是一个数组,这时候把数组当做一个整体字符串添加进去     ** pop();  表示删除最后一个元素,并返回删除的那个元素     ** reverse(); 颠倒数组中的元素的顺序

12.js的Date对象

   * js获取当前时间         var date=new Date(); document.write(date);//Mon Aug 08 2016 09:58:22 GMT+0800 (中国标准时间) //转换成习惯的格式 document.write("<br/>"); document.write(date.toLocaleString());     * 获取当前年的方法       getFullYear(); 得到当前的年      ** var date=new Date();   document.write(date.getFullYear());    * 获取当前月的方法      getMonth(); 获取当前的月份       返回的值是0-11,如果要得到准确的月份,加1     ** var date=new Date();        var mon=date.getMonth()+1;        document.write("month:"+mon);    * 获取当前星期的方法       getDay(); 获取当前的星期         返回的值是0-6,星期日返回的是0      **var date=new Date();        document.write("星期:"+date.getDay());    * 获取当前天的方法      getDate(); 0-31      **var date=new Date(); document.write("day:"+date.getDate());    * 获取当前小时的方法      getHours(); 0-23      **var date=new Date(); document.write("hour:"+date.getHours());    * 获取当前分钟的方法      getMinutes(); 0-59      **var date=new Date(); document.write("minute:"+date.getMinutes());     * 获取当前秒的方法         getSeconds(); 0-59      ** var date=new Date();   document.write("second:"+date.getSeconds());     * 获取当前毫秒数的方法          getTime(); 返回的是1970.1.1至今的毫秒数      ** var date=new Date(); document.write("毫秒数:"+date.getTime());

13.js的Math对象

   *属性:PI               document.write(Math.PI);    *里面的都是静态方法,使用时可以直接Math.方法名()     **cell(x); 向上舍入 10.4 → 11     **floor(x); 向下舍入 10.7 → 10     **round(x); 四舍五入     **random(); 返回0-1之间的随机数(伪随机数)       得到0-9的随机数       Math.floor(Math.random()*10)     **pow(x,y);  x的y次幂

14.js的全局函数

   *不属于任何一个对象,直接写名称使用     **eval(); 执行js代码(如果字符串是一个js代码,使用此方法直接执行)       ***var str="alert('0123456789')";           eval(str);     **encodeURI():对字符进行编码       decodeURI():对字符进行解码     **encodeURIComponent()和decodeURIComponent()     **isNaN():判断当前字符串是否为数字       特别注意:如果是数字,返回false             如果不是数字,返回true     **parseInt():类型转换       parseFloat():类型转换

15.js函数的重载

   ** 定义:方法名形同,参数不同    ** js是否存在重载      —— js里面不存在重载      —— 但可以通过其他方式模拟重载的效果,通过arguments数组来实现

16.js的bom对象

   *bom:broswer object model 浏览器对象模型    *有哪些对象     **navigator: 获取客户机(浏览器)的信息       -- navigator.appName     **screen:获取屏幕的信息        --screen.width         --screen.height     **location:请求url地址       --href属性         ***获取请求的url地址     document.write(location.href); ***设置url地址   页面上设置“百度”按钮,鼠标点击就会跳转百度页面   <body>     <input type="button" value="百度" οnclick="hrefClick();"/>     <script type="text/javascript"> function hrefClick(){ location.href="http://www.baidu.com"; }     </script>   </body>     **history:请求的url的历史记录       -- history.back();  history.go(-1);到访问的上一个页面         -- history.forward(); history.go(1);到访问的下一个页面     **window:窗口对象       --顶层对象:所有的bom对象都是在window里面操作的       --跨页面操作:opener属性:得到创建此窗口的窗口       --方法         ***window.alert(); 页面显示一个框,显示内容   简写为alert(); ***confirm(); 确认框 ***prompt(); 输入的对话框   用法:prompt(text,defaultText);   prompt("请输入一个数:","0"); ***open(); 打开一个新的浏览器窗口或查找一个已命名的窗口   用法:open(URL,name,features,replace); 一般只用前三个参数   即:open("打开的新窗口的url地址","","窗口的特征,比如说窗口的宽度高度");   -- 创建一个按钮,点击后打开一个新的窗口

     <body> 

 <input type="button" value="窗口" οnclick="openNew()"/>    <script type="text/javascript">  function openNew(){ open("biaodan.html","","width=600,height=500"); //open("http://www.baidu.com","","width=600,height=500"); }   </script>      </body> ***close(); 关闭窗口(浏览器兼容性不好) ---定时器 ***setInterval(); 指定的周期(以毫秒计)来调用函数或计算表达式   -- 用法:setInterval("js代码",毫秒数);  1秒=1000毫秒   setInterval("alert('定时操作设置成功!');",3000);  ***setTimeout();  在指定是毫秒后调用函数或计算表达式,只执行一次       setTimeout("js代码",毫秒数);  ***clearInterval(); 取消由setInterval()设置的timeout   -- 用法:clearInterval(id); id必须是由setInterval()返回的ID值 ***clearTimeout();  取消由setTimeout()设置的timeout   -- 用法:clearTimeout(id); id必须是由setTimeout()返回的ID值

17.js的dom对象

   * dom: document object model: 文档对象模型    * 解析过程      根据html的层级结构,在内存中分配一个树形结构,需要把html中的每部分封装成      对象      --document对象:整个文档      --element对象:标签对象      --属性对象      --文本对象      --Node节点对象:这个对象是这些对象的父对象        **如果对象里面找不到想要的方法,这时候到Node对象里面去找

18.DHTML

   动态的HTML,它不是一门语言,是多项技术综合体的简称。    包括html,csss,dom,javascript

19.document对象

   *常用方法:      -- getElementById()返回对拥有指定id的第一个对象的引用         **通过id得到元素(标签)      -- getElementsByName() 返回带有指定名称的对象集合         **通过标签的name的属性值得到标签 **返回的是一个对象集合(数组)      -- getElementsByTagName()  返回带有指定标签名的对象集合         **getElementsByTagName("标签名称")      -- write() 向页面输出变量(值),向页面输出html代码      -- createElement("标签名称")方法:创建标签      -- createTextNode("文本内容")方法:创建文本      appendChild()方法

20.Elememt对象

   *操纵Elememt对象的属性(首先要获取到element,使用document里面相应的方法获取)     -- 获取属性里面的值:getAttribute(name)方法     -- 设置属性的值:setAttribute(name,value)方法                  注意:value的值无法删除     -- 删除属性:removeAttribute(name)方法    *在Elememt对象中查找Elememt对象(获取标签下的子标签)      --使用Node对象中的属性childNodes,但是此属性的兼容性很差      --在Elememt对象的范围内,可以用来查找其他节点的唯一有效方法就是        getElementsByTagName()方法,而该方法返回的是一个集合        ctrl+F5 无缓存刷新(IE浏览器)

21.Node对象属性

   -- nodeName       *获取属性:getAttributeNode()方法    -- nodeType    -- nodeValue    --使用dom解析html时,会将html里面的标签,属性和文本都封装成对象    --                nodeType     nodeName      nodeValue       标签节点       1         大写的标签名称     null       属性节点       2             属性名称           属性的值       文本节点       3                #text               文本内容     - 父节点,子节点和同辈节点     -- 父节点:parentNode              * parentNode属性返回的节点永远是一个元素节点,因为只有元素节点才有可能包含子节点          * document节点没有父节点                 -- 子节点:             * childNodes:获取指定节点的所有子节点的集合       * firstChild:获取指定节点的第一个子节点         * lastChild: 获取指定节点的最后一个子节点     -- 同辈节点:             * nextSibling:返回个给定节点的下一个兄弟节点         * previousSibling:返回一个给定节点的上一个兄弟节点    

22.操作DOM节点树

   *插入节点          -- appendChild()方法:                    **添加子节点到末尾      **有剪切粘贴的效果(特点之一) -- insertBefore(newNode,oldNode)方法       **插入一个新节点,节点不存在,创建         1.创建标签 2.创建文本 3.把文本添加到标签中 注意:没有insertAfter()方法     *删除节点          -- removeChild()方法:通过父节点删除,不能自己删除自己     *替换节点          -- replaceChild(newNode,oldNode)方法:              通过父节点替换,不能自己替换自己     *复制节点:cloneNode(boolean)方法,其中,参数boolean是判断是否复制子节点    移动节点:由以下三种方法组合完成         -- 查找节点:           * getElementById():通过节点的id属性,查找对应节点   * getElementsByName():通过节点的name属性,查找对应节点   * getElementsByTagName():通过节点名称,查找对应节点 -- 插入节点:           * appendChild()方法                              * insertBefore(newNode,oldNode)方法 -- 替换节点:replaceChild(newNode,oldNode)方法

23.innerHTML属性

   *浏览器几乎都支持该属性,但不是DOM标准的组成部分    *innerHTML属性可以用来读,写某给定元素里的HTML内容    *innerHTML属性多与div或span标签配合使用    作用:1.获取文本内容          2.向标签里面设置内容(可以是html代码)

24.表单提交方式

   *使用submit提交    <form>    <input type="submit" value="提交"/>    </form>         *使用button提交表单    <form id="fm">       <input type="button" οnclick="tijiao();"/>     </form>     <script type="text/javascript"> function tijiao(){ var fm=document.getElementById("fm"); fm.action="xxx.html"; fm.submit(); }     </script>    *使用超链接提交     <a href="xxx.html?username=abc">提交</a>    *鼠标事件     onclick:鼠标点击     onchange:改变内容(一般和select一起使用)     onfocus:得到焦点     onblur:失去焦点    
转载请注明原文地址: https://www.6miu.com/read-64988.html

最新回复(0)