当前位置 : 主页 > 网络编程 > JavaScript >

javascript回顾

来源:互联网 收集:自由互联 发布时间:2021-06-28
JavaScript知识点回顾 一、什么是JavaScript?JavaScript是(1)基于对象 JavaScript本身就是一些线程的对象可供程序员使用,例如:Array,Math,String... JavaScript并不排除你可以自己按一定的规则创
JavaScript知识点回顾
一、什么是JavaScript?
JavaScript是
(1)基于对象
    JavaScript本身就是一些线程的对象可供程序员使用,例如:Array,Math,String...
    JavaScript并不排除你可以自己按一定的规则创建对象
(2)时间驱动
    JavaScript代码写好后,需要外界出发后,方可运行,例如:单击事件,定时执行...
(3)解释性
    每次运行JavaScript代码时,得需要将原代码一行一行地解释执行
(4)基于浏览器的动态交互网页技术
    如果JavaScript嵌入到HTML中,可以不需要服务器支持,直接由浏览器解释执行
    如果JavaScript嵌入到JSP或Servlet中,必需要服务器支持,直接由浏览器解释执行
(5)嵌入在HTML标签中
    JS必须嵌入到一个名的标签中,方可运行脚本语言

二、JavaScript中的三种类型
    (1)基本类型:number,string,boolean
    number包含正数、负数、小数
    string 由''(单引号)或""(双引号)定界
    boolean包含true或false
    注意:JavaScript中的boolean也包含更多情况,例如:存在表示true,不存在表示false
代码示例:
    var num = 100;
    var str = "Hello World";
    var flag = false;
    alert(num);//100
    alert(str);//Hello World
    alert(flag);false
    (2)特殊类型:null,undefined
    null表示一个变量指向null
    undefined表示一个变量指向的值不确定
代码示例:
    var array = null;
    var student;
    alert(array);//null
    alert(student);//undefined
    (3)复合类型:函数,对象,数组
    对象包含内置对象和自定义的对象
三、JavaScript中由三种定义函数的方式
    (1)正常方式:function mysum(num1,num2){return num1+num2;}
代码示例:
    function mysum(num1,num2){
        return num1 + num2;
    }
    var myresult = mysum(100,200);
    alert("myresult="+myresult);//myresult=300
    (2)构造器方式:new Function("num1","num2","return num1+num2");
代码示例:
    var youresult = new Function("num1"."num2"."return num1+num2;");
    alert("youresult="youresult(100,200));//youresult=300
    (3)直接量或匿名或无名方式:var theysum = function(num1,num2){return num1+num2;}
代码示例:
    var theyresulut = function(num1.num2){
        return num1 + num2;
    }
    alert("theyresulut="+theyresulut(100,200));//theyresulut=300
四 JavaScript中有四种对象
    (1)内置对象:Date、Math、String、Array....
代码示例:
    var str = new Date().toLocaleString();
    window.document.write(""+str+"");//2017/11/24 下午 9:19:13(当前系统时间,字体大小:45,颜色:蓝色)
     (2)自定义对象:Person,Student...
代码示例:
     function Student(id,name,age){
         //this指代当前对象
         this.id = id;
         this.name = name;
         this.age = age;
     }
     var stu = new Student(1,"小铭","男");
     document.write("编号:"+stu.id);//编号:1
     document.write("姓名:"+stu.name);//姓名:小铭
     document.write("性别:"+stu.age);//性别:男
     (3)浏览器对象:window、document、status、location、history...
     //当代码执行时,浏览器一直刷新  history.go(0):刷新 history.go(1):前进 history.go(-1):后退
     function myrefresh(){
         window.history.go(0);
     }
     (4)ActiveX对象:ActiveXObject("Microsoft.XMLHTTP")...

五、演示JavaScript对象的属性,方法和事件的使用
    (1)window.location.href
代码示例:
    var url = "index.html";
    window.location.href = url;//跳转到index.html页面
    (2)from.submit()
代码示例:
    
 
        
  
    
 
    
    (3)inputElement.onblur = 函数
    (4)document.createElement("img")
    (5)imgElement.style.width/height
六、回顾传统Web应用请求和响应特点【显示当前时间】
    (1)请求:浏览器以HTTP协议的方式提交请求到服务器
    (2)响应:服务器以HTTP协议的方式响应内容到浏览器
            注意:HTTP是WEB大众化非安全协议
        HTTPS是WEB安全协议,是基于HTTP协议的,且加了一些加密等特殊功能,常用于在线支付,或者是需要安全性较高的网站中,例如:天猫网站
        HTTP请求有三个部分组成:请求行,请求头,请求体
        HTTP响应由三个部分组成:响应行,响应头,响应体
    (3)状态栏:由明显的进度条刷新现象,如果服务器响应较慢的话,进度条刷新也会变慢,IE9等中高版本浏览器,由明显转圈圈图标
    (4)历史栏:会手机原来已访问过的web页面,进行缓存
    (5)缺点:不需要变化的大量数据,也全部刷新,造成浏览器加载和处理负担
    (6)可改进的地方:让不需变化的大量数据,原封不懂,不用缓存到历史栏中,无需全部是刷新,只刷新某些需要变化的数据区域,例如:当前时间的区域
代码示例:
    当前时间:${requestScopr.str}
    

    

    public class TimeServlet extends HttpServlet{
        public void doGet(HttpServletRequest request,HttpServletResponse) throws ServletException,IOException{
            System.out.println("TimeServlet::doGet");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            request.setAttribute("str",str);
            request.getRequestDispatcher("/index.jsp").forward(request,response);
        }
    }
七、什么是AJAX【Asynchronous异步的JavaScript和XML】,工作原理与特点
    (1)什么是同步:
            请求1-->响应1-->请求2-->响应2-->
            Web1.0时代
    (2)什么是异步:
            请求1-->请求2-->请求3-->响应1-->响应2-->响应3-->
            请求1-->响应1-->请求2-->请求3-->响应2-->响应3-->
            Web2.0时代
    (3)什么是AJAX:
    客户端(特指PC浏览器)与服务器,可以在【不必刷新整个浏览器】的情况下,与服务器进行异步通讯的技术
    即,AJAX是一个【布局刷新】的【异步】通讯技术
    AJAX不是全新的语言,是2005年Google公司推出的一种全新【编程模式】,不是新的编程语言

    (4)不用刷新整个页面便可与服务器通讯的方法有:
        (A)Flas/ActionScript
        (B)框架Frameset
        (C)iFrame(内嵌入框架)
        (D)XMLHttpReauest(非IE浏览器)和ActiveXObject(IE浏览器)
            背景:早上IE5时,微软就开发出了第一个异步通讯对象,叫ActiveXObject对象,
            Firefox等其他浏览器厂商也慢慢引入异步通讯对象,叫XMLHttpRequest对象,但IE由向下兼容问题,
            也可以使用ActiveXObject对象。
            无需第三方jar包,现代中高版本浏览器内置了这个异步通讯对象,只需通过JavaScript就可以创建
            注意:所有浏览器中都内置了异步对象,在默认情况下,该异步对象并没有创建出来
    代码示例:
        function createAJAX(){
            var ajax = null;
            try{
                ajax = new ActiveXObject("microsoft.xmlhttp");
            }catch(e1){
                ajax = new XMLHttpRequest();
            }
            return ajax;
        }
        (5)AJAX工作原理
            参见《AJAX工作原理.JPG》链接:https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=ajax%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.jpg&hs=2&pn=0&spn=0&di=71339160530&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=625365557%2C280187035&os=3110012394%2C451514456&simid=3452325323%2C250112902&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=ajax%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.jpg&objurl=http%3A%2F%2Ffilesimg.111cn.net%2F2011%2F05%2F20111119011732771.jpg%3F16&fromurl=ippr_z2C%24qAzdH3FAzdH3F4_z%26e3B888vg_z%26e3BgjpAzdH3Fw6p-9a08l_z%26e3Bip4&gsm=0
        (6)AJAX包含的技术
            参见《AJAX包含的技术.JPG》链接:https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=ajax%E5%8C%85%E5%90%AB%E7%9A%84%E6%8A%80%E6%9C%AF.jpg&hs=2&pn=0&spn=0&di=83016731821&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=1467581459%2C2503600119&os=3401596873%2C3929444465&simid=3498237227%2C338496020&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=ajax%E5%8C%85%E5%90%AB%E7%9A%84%E6%8A%80%E6%9C%AF.jpg&objurl=http%3A%2F%2Fpic.bianceng.cn%2Fuploads%2F2011%2F1108%2F105JQ234-0.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bktwgvjg2_z%26e3BvgAzdH3FojkhuAzdH3Fw3wxAzdH3Fda88abAzdH3Fdbndn_z%26e3Bip4&gsm=0
        (7)AJAX开发步骤
            步骤一:创建AJAX异步对象,例如:createAJAX();
            步骤二:准备发送异步请求,例如:ajax.open(method.url)
            步骤三:如果是POST请求的话,一定要设置AJAX请求头,例如:ajax.setRequestHeader()
                   如果是GET请求的话,无序设置AJAX请求头
            步骤四:整整发送请求体中的数据到服务器,例如:ajax.send()
            步骤五:AJAX不断地监听服务器端响应的状态变化,例如:ajax.onreadystatechange,后面写一个无名处理函数
            步骤六:在无名处理函数中,获取AJAX的数据后,按照DOM规则,用JavaScript语言来操作Web页面
        (8)AJAX适合用在什么地方
            AJAX【适合】不用来传递大量数据,而只用来【传递少量数据】,在用户的【体验】上更加人性化
            AJAX是一个和服务器无关的技术,即服务器可使用:javaEE,.NET,PHP...这些技术都可以
            AJAX只管向服务器发送请求,同时只管接收服务器的HTML或XML或JSON载体响应
            服务器端不能使用转发或重定向到wbe页面,因为这样会引起浏览器全面刷新
            即只能以流的方式响应给浏览器

八、AJAX应用
    (1)无序刷新整个Web页面显示服务器响应的当前时间
    (text/html;charset=UTF-8)
代码示例:
    当前时间:
public class ProvinceCityServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ this.doPost(request,response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ request.setCharacterEncoding("UTF-8"); String province = request.getParamter("province"); response.setContentType("text/xml;charset=UTF-8"); PrintWrite pw = response.getWrite(); pw.write(" "); pw.write("root"); if("广东".equals(province)){ pw.write(" 广州 "); pw.write(" 深圳 "); pw.write(" 中山 "); pw.write(" 珠海 "); }else if("湖南".equals(province)){ pw.write(" 长沙 "); pw.write(" 株洲 "); pw.write(" 张家界 "); }else if("湖北".equals(province)){ pw.write(" 武汉 "); pw.write(" 黄岗 "); } pw.write(""); pw.flush(); pw.close(); } } (4)验证码检查 (text/html;charset=UTF-8) 代码示例: 验证码: public class checkcodeServlet extends HttpServlet{ public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ request.setCharacterEncoding("UTF-8"); //获取客户端输入的验证码 String checkcodeClient = request.getParamter("checkcode"); //获取服务器端产生的验证码 HttpSession httpSession = request.getSession(); String checkcodeServer = (String)httpSession.getAttribute("CHECKNUM"); //两个验证码进行比较 String tip = "images/MsgError.gif"; if(checkcodeClient!=null && checkcodeServer!=null && checkcodeClient.equals(checkcodeServer)){ tip = "images/MsgSent.gif"; } //以流的方式输出tip变量 response.setContentType("text/html;charset=UTF-8"); PrintWrite pw = response.getWrite(); pw.write(tip); pw.flush(); pw.close(); } } 九、XMLHttpRequest(即:AJAX)对象常用事件,方法和属性 (1)事件: ajax.onreadystatechange:表示AJAX异步对象不断监听服务端的响应,是由服务器程序触发,不是程序员触发 (2)属性: ajax.readySate==0:表示AJAX异步对象已创建好,但还没有调用open()方法 ajax.readySate==1:表示AJAX异步对象已调用open()方法,但还没有调用send()方法 ajax.readySate==2:表示AJX异步对象已调用send()方法,但请求还没有到达服务器端 ajax.readySate==3:表示服务器端已接收到AJAX异步对象的请求,正在处理响应中... ajax.readySate==4:表示AJAX异步对象已经完完全全接收到了服务器的响应信息,但接收到的数据不一定都正确 上述5种状态不是所有浏览器都相同,但状态4每种浏览器都相同 ajax.status==200:表示AJAX异步对象接收到响应码,如果是200的话,表示一切正常 ajax.responseText:表示从AJAX异步对象中获取HTML载体中的数据 ajax.responseXML:表示从AJAX异步对象中获取XML载体中的数据 (3)方法: ajax.open(method,url,可选的boolean值) AJAX异步对象准备发送异步请求 参数一:以什么方式发送,常用的用GET或POST,大小写不敏感 参数二:发送到什么地方去,常用Servlet或Struts2或SpringMVC来接收,这里只限于JavaEE 参数三:默认值true,表示AJAX对象以【异步】的方式提交到服务端 如果设置为false,表示AJAX对象以【同步】的方式提交到服务端 ajax.setRequestHeader("content-type","application/x-www-form-urlencoded") 表示将请求体中的内容,按照UTF-8的方式进行编码,只针对POST请求有效 ajax.send(content) AJAX异步对象真正发送异步请求 参数一:表示HTTP【请求体】中的内同 如果是GET方法:content = null,如果强行传值到服务器,服务端收不到,返回NULL 如果是POST方式:content != null,例如:username = jack&password = 123&role=admin 十、数据载体 (1)HTML (A)优点:服务端响应的是普通html字符串,无需JavaScript解析,配额和innerHTML属性效率高 (B)缺点:如果需要更新WEB页面中的很多处地方,HTML不太方便,同时innerHTML属性不是DOM的标准,不能操作XML 注意:innerHeml在xml中不能使用,用firstChild.nodeValue替代 (C)适合:小量数据载体,且只要更新在web页面中的一个地方 (2)XML (A)优点:是种通信的普通字符串格式,任何技术都能解析,标签名可以任意,使用DOM标准规则能够解析XML的任何部分 (B)缺点:XML文件格式相当阉割,出错后,responseXML属性返回NULL,如果XML文件过长,导致解析效率低下 (C)适合:大量具有层次数据载体 (3)JSON+struts2框架 兼备HTML和XML的特点
上一篇:angular 的路由
下一篇:日志打印函数
网友评论