IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端高级部分 -> 正文阅读

[JavaScript知识库]前端高级部分

JQuery 基础:

  1. 概念: 一个JavaScript框架。简化JS开发
    • jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨 是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优 化HTML文档操作、事件处理、动画设计和Ajax交互。

    • JavaScript框架:本质上就是一些js文件,封装了js的原生代码而已

  2. 快速入门
    1. 步骤:
      1. 下载JQuery

        • 目前jQuery有三个大版本:
          1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,
          功能不再新增。因此一般项目来说,使用1.x版本就可以了,
          最终版本:1.12.4 (2016年5月20日)
          2.x:不兼容ie678,很少有人使用,官方只做BUG维护,
          功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,
          最终版本:2.2.4 (2016年5月20日)
          3.x:不兼容ie678,只支持最新的浏览器。除非特殊要求,
          一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。
          目前该版本是官方主要更新维护的版本。最新版本:3.2.1(2017年3月20日)
        • jquery-xxx.js 与 jquery-xxx.min.js区别:
          1. jquery-xxx.js:开发版本。给程序员看的,有良好的缩进和注释。体积大一些
          2. jquery-xxx.min.js:生产版本。程序中使用,没有缩进。体积小一些。程序加载更快
      2. 导入JQuery的js文件:导入min.js文件

      3. 使用
        var div1 = $("#div1");

  3. JQuery对象和JS对象区别与转换
    1. JQuery对象在操作时,更加方便。
    2. JQuery对象和js对象方法不通用的.
    3. 两者相互转换
      • jq – > js : jq对象[索引] 或者 jq对象.get(索引)
      • js – > jq : $(js对象)
4. 选择器:筛选具有相似特征的元素(标签)

	1. 基本操作学习:
		1. 事件绑定
			//1.获取b1按钮
            $("#b1").click(function(){
                alert("abc");
            });
		2. 入口函数
			 $(function () {
	           
   			 });
			 window.onload  和 $(function) 区别
                 * window.onload 只能定义一次,如果定义多次,后边的会将前边的覆盖掉
                 * $(function)可以定义多次的。
		3. 样式控制:css方法
			 // $("#div1").css("background-color","red");
      		$("#div1").css("backgroundColor","pink");

JQuery 高级

1. 动画
	1. 三种方式显示和隐藏元素
		1. 默认显示和隐藏方式
			1. show([speed,[easing],[fn]])
				1. 参数:
					1. speed:动画的速度。三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000)
					2. easing:用来指定切换效果,默认是"swing",可用参数"linear"
						* swing:动画执行时效果是 先慢,中间快,最后又慢
						* linear:动画执行时速度是匀速的
					3. fn:在动画完成时执行的函数,每个元素执行一次。

			2. hide([speed,[easing],[fn]])
			3. toggle([speed],[easing],[fn])
		
		2. 滑动显示和隐藏方式
			1. slideDown([speed],[easing],[fn])
			2. slideUp([speed,[easing],[fn]])
			3. slideToggle([speed],[easing],[fn])

		3. 淡入淡出显示和隐藏方式
			1. fadeIn([speed],[easing],[fn])
			2. fadeOut([speed],[easing],[fn])
			3. fadeToggle([speed,[easing],[fn]])

2. 遍历
	1. js的遍历方式
		* for(初始化值;循环结束条件;步长)
	2. jq的遍历方式
		1. jq对象.each(callback)
			1. 语法:
				jquery对象.each(function(index,element){});
					* index:就是元素在集合中的索引
					* element:就是集合中的每一个元素对象

					* this:集合中的每一个元素对象
			2. 回调函数返回值:
				* true:如果当前function返回为false,则结束循环(break)* false:如果当前function返回为true,则结束本次循环,继续下次循环(continue)
		2. $.each(object, [callback])
		3. for..of: jquery 3.0 版本之后提供的方式
			for(元素对象 of 容器对象)
	
3. 事件绑定
	1. jquery标准的绑定方式
		* jq对象.事件方法(回调函数)* 注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。
			* 表单对象.submit();//让表单提交
	2. on绑定事件/off解除绑定
		* jq对象.on("事件名称",回调函数)
		* jq对象.off("事件名称")
			* 如果off方法不传递任何参数,则将组件上的所有事件全部解绑
	3. 事件切换:toggle
		* jq对象.toggle(fn1,fn2...)
			* 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2.....
			
		* 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。
			 <script src="../js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8"></script>

Ajax和Json
AJAX:

  1. 概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML

    1. 异步和同步:客户端和服务器端相互通信的基础上

      • 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
      • 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。

      Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1]
      通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
      传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

      提升用户的体验

  2. 实现方式:

    1. 原生的JS实现方式(了解)
      //1.创建核心对象
      var xmlhttp;
      if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
      else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
      }

           //2. 建立连接
           /*
               参数:
                   1. 请求方式:GET、POST
                       * get方式,请求参数在URL后边拼接。send方法为空参
                       * post方式,请求参数在send方法中定义
                   2. 请求的URL:
                   3. 同步或异步请求:true(异步)或 false(同步)
      
            */
           xmlhttp.open("GET","ajaxServlet?username=tom",true);
      
           //3.发送请求
           xmlhttp.send();
      
           //4.接受并处理来自服务器的响应结果
           //获取方式 :xmlhttp.responseText
           //什么时候获取?当服务器响应成功后再获取
      
           //当xmlhttp对象的就绪状态改变时,触发事件onreadystatechange。
           xmlhttp.onreadystatechange=function()
           {
               //判断readyState就绪状态是否为4,判断status响应状态码是否为200
               if (xmlhttp.readyState==4 && xmlhttp.status==200)
               {
                  //获取服务器的响应结果
                   var responseText = xmlhttp.responseText;
                   alert(responseText);
               }
           }
      
    2. JQeury实现方式

      1. $.ajax()

        • 语法: . a j a x ( 键 值 对 ) ; / / 使 用 .ajax({键值对}); //使用 .ajax();//使.ajax()发送异步请求
          $.ajax({
          url:“ajaxServlet1111” , // 请求路径
          type:“POST” , //请求方式
          //data: “username=jack&age=23”,//请求参数
          data:{“username”:“jack”,“age”:23},
          success:function (data) {
          alert(data);
          },//响应成功后的回调函数
          error:function () {
          alert(“出错啦…”)
          },//表示如果请求响应出现错误,会执行的回调函数

            dataType:"text"//设置接受到的响应数据的格式
          

          });

      2. $.get():发送get请求

        • 语法:$.get(url, [data], [callback], [type])
          • 参数:
            • url:请求路径
            • data:请求参数
            • callback:回调函数
            • type:响应结果的类型
      3. $.post():发送post请求

        • 语法:$.post(url, [data], [callback], [type])
          • 参数:
            • url:请求路径
            • data:请求参数
            • callback:回调函数
            • type:响应结果的类型

Json:

1. 概念: JavaScript Object Notation		JavaScript对象表示法
	Person p = new Person();
	p.setName("张三");
	p.setAge(23);
	p.setGender("男");

	var p = {"name":"张三","age":23,"gender":"男"};

	* json现在多用于存储和交换文本信息的语法
	* 进行数据的传输
	* JSONXML 更小、更快,更易解析。

2. 语法:
	1. 基本规则
		* 数据在名称/值对中:json数据是由键值对构成的
			* 键用引号(单双都行)引起来,也可以不使用引号
			* 值得取值类型:
				1. 数字(整数或浮点数)
				2. 字符串(在双引号中)
				3. 逻辑值(truefalse4. 数组(在方括号中)	{"persons":[{},{}]}
				5. 对象(在花括号中) {"address":{"province""陕西"....}}
				6. null
		* 数据由逗号分隔:多个键值对由逗号分隔
		* 花括号保存对象:使用{}定义json 格式
		* 方括号保存数组:[]
	2. 获取数据:
		1. json对象.键名
		2. json对象["键名"]
		3. 数组对象[索引]
		4. 遍历
				 //1.定义基本格式
		        var person = {"name": "张三", age: 23, 'gender': true};
		
		        var ps = [{"name": "张三", "age": 23, "gender": true},
		            {"name": "李四", "age": 24, "gender": true},
		            {"name": "王五", "age": 25, "gender": false}];
//获取person对象中所有的键和值
		        //for in 循环
		       /* for(var key in person){
		            //这样的方式获取不行。因为相当于  person."name"
		            //alert(key + ":" + person.key);
		            alert(key+":"+person[key]);
		        }*/
		
		       //获取ps中的所有值
		        for (var i = 0; i < ps.length; i++) {
		            var p = ps[i];
		            for(var key in p){
		                alert(key+":"+p[key]);
		            }
		        }
3. JSON数据和Java对象的相互转换

	* JSON解析器:
		* 常见的解析器:Jsonlib,Gson,fastjson,jackson
	
	1. JSON转为Java对象
		1. 导入jackson的相关jar包
		2. 创建Jackson核心对象 ObjectMapper
		3. 调用ObjectMapper的相关方法进行转换
			1. readValue(json字符串数据,Class)
	2. Java对象转换JSON
		1. 使用步骤:
			1. 导入jackson的相关jar包
			2. 创建Jackson核心对象 ObjectMapper
			3. 调用ObjectMapper的相关方法进行转换
				1. 转换方法:
					* writeValue(参数1,obj):
	                    参数1:
	                        File:将obj对象转换为JSON字符串,并保存到指定的文件中
	                        Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
	                        OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
	                * writeValueAsString(obj):将对象转为json字符串

				2. 注解:
					1. @JsonIgnore:排除属性。
					2. @JsonFormat:属性值得格式化
						* @JsonFormat(pattern = "yyyy-MM-dd")

				3. 复杂java对象转换
					1. List:数组
					2. Map:对象格式一致
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:20:57  更:2021-07-24 11:21:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 13:39:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码