一、JavaScript简介

  1. 什么是JavaScript:
  • Javascript语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执

    1. JavaScript代码。简称JS !
  • JS是Netscape网景公司的产品,最早取名为LiveScript为了吸引更多java开发人员。更名为JavaScript。

  1. 弱类型
  • JS 是运行在浏览器端的一门编程语言是弱类型(所有关键字都可以用一个来接收),Java 是强类型。
  • 弱类型:指的就是所有类型的数据都可以用一个关键子去接收(var、let、const),语法相对来说没有那么严格
  • 因为浏览器的性能很强大,Js可以是弱类型的。

二、JS的应用

2.1 js的hello world的程序
  1. js代码的编写位置
  • 在html页面中定义一个script标签,在该标签中写js代码
  • 我们可以创建一个外部的js文件,将js代码写在这个文件里面,在html页面中进行引入

    1. <script>
    2. alert('网页弹窗')
    3. alert('hello world')
    4. </script>
  • js中的注释和java中的注释方式完全一致。

2.2 js中的变量
  1. 在js中用于接收变量的关键字 :var、let
  • var能够接收的是局部变量
  • let表示的是全局变量
  • const用于声明常量:不可变的量
  1. 使用(typeof 数据)可以查看数据的类型

2.3 js中的逻辑判断
  1. js中数据的本身就可以表示真或者假 负数也是真,js中处理0,false,undefined本身表示为假;
  2. 且运算:两个同时为真的数据进行且运算时取到的时后面的数据。

    1. 参与且运算的数据包含假的数据,则会取到为假的数据,如果两个数 据都为假,那么会取到前者的值。取到的靠前为假的值。
  3. 或运算:只要两者数据都为真,取到前者的数据。一真一假取到的为真的数据。两者同时为假则取到后者的数据。取到的靠前为真的值。

2.4 js中的数组
  1. js中的数组可以存放任意类型的数据,在java中数组只能存放某一种数据类型的数据;数据下标从0开始。
  1. 案例: 学生的期末考试成绩:98、88、70、87、95、68、90、85、74、93 求最大值,最小值、总和、平均值

2.5 js中的函数
  1. 创建、调用函数

    1. //方式一
    2. function fun1(){
    3. 函数体;
    4. }
    5. //方式二
    6. let fun2 = function(){
    7. 函数体;
    8. }
    9. //调用
    10. fun();
  2. js中函数的总结:

  • js中的函数不支持重载
  • js中的函数没有返回值类型,如果你想给方法的调用处返回数据,直接写return关键字返回数据即可
  • js中的函数参数列表是没有数据类型的

    function fun3(name, age)

  • arguments 函数中的一个隐式的数组对象,用于接收参数数据

2.5 js 中的事件
  1. onload加载完成事件:

    1. 浏览解析完所有标签后/页面加载完成之后,常用于做页面js 代码初 始化操作。
  2. onclick单击事件:

    1. 常用于按钮的点击响应操作。
  3. onblur失去焦点事件:常用用于输入框失去焦点后验证其输入内容是否合法。

  4. onchange内容发生改变事件:常用于下拉列表和输入框内容发生改变后操作
  5. onsubmit表单提交事件:常用于表单提交前,验证所有表单项是否合法。

2.7 静态注册和动态注册
  1. 静态注册事件:

通过html标签的事件属性直接赋于事件响应后的代码,这种方式我们
叫静态注册。

  1. 动态注册事件:

是指先通过js 代码得到标签的dom对象(通常指HTML标签),然后
再通过dom对象.事件名= function()这种形式赋于事件响应后的代
码,叫动态注册。

  1. 所有的动态绑定操作必须放到文本就绪函数(window.onload = function)里;否则无法指行动态绑定的事件,由于浏览器顺序解析时是按顺序解析的。 ```javascript <!DOCTYPE html>

  1. <!--静态绑定单机事件-->
  2. <!--<input type="button" value="测试单击事件" onclick="alert('鼠标单击事件静态绑定触发了!!')">-->
  3. <!--动态绑定-->
  4. <input type="button" id="onclickInput" value="测试单击事件"><br>
  5. <!--静态绑定失去焦点事件-->
  1. <!--动态绑定-->
  2. 动态绑定失去焦点事件:<input type="text" id="onblurInput"><br>
  3. <!--静态绑定内容发生改变事件-->
  1. 动态绑定内容发生改变事件:<select id="selectEl">
  2. <option>--请选择你的爱豆--</option>
  3. <option>--蔡徐坤--</option>
  4. <option>--张艺兴--</option>
  5. <option>--刘浩然--</option>
  6. <option>--许光汉--</option>
  7. </select>

  1. <a name="QXcL4"></a>
  2. ##### 2.8 DOM模型和document 对象
  3. 1. DOM全称是Document Object Model 文档对象模型
  4. 1. doucument野封象
  5. - 第一点:Document它管理了所有的HTML文档内容。
  6. - 第二点: document它是一种树结构的文档。有层级关系。第三点:它让我们把所有的标签都对象化
  7. - 第四点:我们可以通过document 访问所有的标签对象。
  8. <a name="cZ2WK"></a>
  9. ##### 2.9 js常用属性
  10. 1. childNodes 属性,获取当前节点的所有子节点
  11. 1. firstChild属性,获取当前节点的第一个子节点
  12. 1. lastChild 属性,获取当前节点的最后一个子节点
  13. 1. parentNode 属性,获取当前节点的父节点
  14. 1. nextSibling属性,获取当前节点的下一个节点
  15. 1. previousSibling属性,获取当前节点的上一个节点
  16. 1. className用于获取或设置标签的class属性值
  17. 1. innerHTML属性,表示获取/设置起始标签和结束标签中的内
  18. 1. innerText属性,表示获取/设置起始标签和结束标签中的文本
  19. ```javascript
  20. <!DOCTYPE html>
  21. <html lang="en">
  22. <head>
  23. <meta charset="UTF-8">
  24. <title>常用属性</title>
  25. </head>
  26. <script>
  27. window.onload = function (){
  28. //获取所有的子节点
  29. let childNodes = document.getElementById("body").childNodes
  30. //获取第一个子节点
  31. let firstChild = document.getElementById("body").firstChild
  32. /* for (let i in childNodes){
  33. alert(childNodes[i])
  34. }*/
  35. //alert(firstChild)
  36. //获取div
  37. let box = document.getElementById("box");
  38. //获取所有的内容
  39. alert(box.innerHTML)
  40. //获取文本内容
  41. alert(box.innerText)
  42. }
  43. </script>
  44. <body id="body">
  45. <h1>hello world</h1>
  46. <br>
  47. <div id="box">
  48. <span>我是div内部的span标签</span>
  49. </div>
  50. <span></span>
  51. </body>
  52. </html>

三、jQuery

3.1 jquery介绍

导入控件:
jquery能代替以上操作,且更简单。需要导入jquery的控件。jquery-1.7.2.js

  1. jQuery也就是JavaScript和查询(Query) ,它就是辅助

JavaScript开发的js类库

  1. 它的核心思想是write less,do more(写得更少,做得更多),

所以它实现了很多浏览器的兼容问题。

  1. jQuery现在已经成为最流行的JavaScript库,在世界前

10000个访问最多的网站中,有超过55%在使用jQuery。

  1. jQuery是免费、开源的,jQuery的语法设计可以使开发

更加便捷,例如操作文档对象、选择DOM元素、制作动.
画效果、事件处理、使用Ajax以及其他功能

  1. 参照文档:https://jquery.cuishifeng.cn/

3.1 jquery介绍
  1. jquery的核心函数$( 对象)<br />通过jquery的方式来声明一个文本就绪函数<br />如下代码:采用原生的js方式动态绑定单击事件,和采用jquery方式绑定单击事件。
  1. <!--引入jquery控件-->
  2. <script src="../jquery/jquery-1.7.2.js"></script>
  3. <script>
  4. //通过jquery的方式来声明一个文本就绪函数
  5. $(function (){
  6. //通过原生js来获取对应的标签对象
  7. let button = document.getElementById("button");
  8. /* button.onclick = function (){
  9. alert("通过原生js的方式来绑定单击事件")
  10. }*/
  11. //[object HTMLInputElement] dom对象
  12. //alert(button)
  13. let jqueryBut = $(button)
  14. //[object Object] jquery对象
  15. //alert(jqueryBut)//[object Object]
  16. //alert(jqueryBut[0])//[object HTMLInputElement]
  17. //通过jquery的方式来获取标签对象
  18. //#是id选择器。
  19. let jqueryButton = $("#button")
  20. //jquery对象
  21. //alert(jqueryButton)
  22. jqueryButton.click(function (){
  23. alert("通过jquery的方式来绑定单击事件")
  24. })
  25. })
  26. </script>
  27. <body>
  28. <input type="button" id="button" value="测试">
  29. </body>
  30. </html>

3.3 对象转换与区别
  1. dom对 象转jquery对象
    将dom对象添加到jquery的核心函数中$(dom对象)
    2、jquery对 象转成dom对象
    jquery对象的本质共文就是dom对象的数组+ jQuery提供的一系
    列功能函数,可以根据下标索引来取到对应的dom对象

  2. 区别:

  • jquery计对 F dom对象中所有的属件大对数部会付装成对应的函数,
  • jquery不能 够调Hdom对象中的属件,dom对象也不能调用jquery对象的函数

3.3 jQuery选择器
  1. ID选择器:根据id查找标签对象

  2. . class 选择器:根据class查找标签对象(就是一个点)
  3. element选择器:根据标签名查找标签对象
    • 选择器: 表示任意的,所有的元素
  4. selector1, selector2 组合选择器:合并选择器1,选择器

    1. 2的结果并返回 取并集。<br /> 组合选择器参数为待标签类型。
  5. 层级选择器

  • ancestor descendant后代选择器:在给定的祖先元素下

匹配所有的后代元素

例如 let bodydiv = $(body div); 旨在匹配body内部的div

  • parent>child子元素选择器:在给定的父元素下匹配所

有的子元素

  • prev+next相邻元素选择器:匹配所有紧接在prev元素

后的next元素

  • prev ~ sibings之,后的兄弟元素选择器:匹配prev元素之

后的所有siblings元素
用来找某类元素的某类兄弟

3.4 案例

案例需求:使用jquery选择器来完成全选、全不选、反选

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>常用属性</title>
  6. </head>
  7. <!--引入jquery控件-->
  8. <script src="../jquery/jquery-1.7.2.js"></script>
  9. <script>
  10. //文本就绪函数
  11. $(function (){
  12. //给全选按钮绑定单击事件
  13. $("[value = '全选']").click(function (){
  14. //遍历多选框
  15. $("[name = 'hobby']").each(function (){
  16. //this.checked = true
  17. $(this).prop("checked",true)
  18. })
  19. })
  20. //全不选
  21. $("[value = '全不选']").click(function (){
  22. //遍历多选框
  23. $("[name = 'hobby']").each(function (){
  24. //this.checked = false
  25. $(this).prop("checked",false)
  26. })
  27. })
  28. //反选
  29. $("[value = '反选']").click(function (){
  30. //遍历多选框
  31. $("[name = 'hobby']").each(function (){
  32. //this.checked = !this.checked
  33. $(this).prop("checked",!this.checked)
  34. })
  35. })
  36. })
  37. </script>
  38. <body>
  39. 爱好:<br>
  40. 打篮球 <input type="checkbox" name="hobby" value="打篮球">
  41. 约会 <input type="checkbox" name="hobby" value="约会">
  42. 敲代码 <input type="checkbox" name="hobby" value="敲代码">
  43. 干饭 <input type="checkbox" name="hobby" value="干饭">
  44. 睡觉 <input type="checkbox" name="hobby" value="睡觉">
  45. <br>
  46. <input type="button" value="全选"><br>
  47. <input type="button" value="全不选"><br>
  48. <input type="button" value="反选"><br>
  49. </body>
  50. </html>
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>常用属性</title>
  6. </head>
  7. <!--引入jquery控件-->
  8. <script src="../jquery/jquery-1.7.2.js"></script>
  9. <script>
  10. //文本就绪函数
  11. $(function (){
  12. $("[value = '计算']").click(function (){
  13. let num1 = $("#num1").val()
  14. let num2 = $("#num2").val()
  15. let result;
  16. //获取选中状态下的运算符
  17. let ysf = $("select option:selected").val()
  18. if (ysf == '+'){
  19. //Number()将字符串类型的数据转换成整型的
  20. result = Number(num1) + Number(num2)
  21. }else if (ysf == '-'){
  22. result = Number(num1) - Number(num2)
  23. }else if (ysf == '*'){
  24. result = Number(num1) * Number(num2)
  25. }else if (ysf == '/'){
  26. result = Number(num1) / Number(num2)
  27. }
  28. //用于数据的追加
  29. $("#result").val(result)
  30. })
  31. })
  32. </script>
  33. <body>
  34. 计算器:<br>
  35. <input type="text" name="num1" id="num1">
  36. <select name="ysf">
  37. <option value="">--请选择运算符--</option>
  38. <option value="+">+</option>
  39. <option value="-">-</option>
  40. <option value="*">*</option>
  41. <option value="/">/</option>
  42. </select>
  43. <input type="text" name="num2" id="num2"><br>
  44. <input type="button" value="计算"><br>
  45. 结果:<input type="text" id="result">
  46. </body>
  47. </html>