当前位置:   article > 正文

JavaScript快速入门+文档查询【详解】_javascript文档

javascript文档

目录

1. js简介

2.js引入方式

3. JS基础语法(ECMAScript)

4. js函数和事件【js的核心】

5.js对象

 6.BOM对象

7.DOM对象        

8.案例全选全消

1. js简介

        1.什么是js

        JavaScript,简称js,是web开发中不可缺少的脚本语言,不需要编译就能运行(解释型语言)。在传统的web开发里,它“寄生”在html体内放在服务器上,随网络传输到客户端,在浏览器里运行

        2.js作用

        监听用户的动作:使用的是js的事件监听机制

        可以操作浏览器的行为:比如让浏览器弹窗、历史记录的前进、后退等等

        可以改变网页的内容:可以修改html标签、标签的属性、标签的样式,然后页面显示的效果就会随之改变

2.js引入方式

         内部js:在html里任意位置添加<script> 在这里写js代码 </script>标签,在标签内部写js代码

        外部js:把js代码写到单独的js文件里,html中使用<script src="js文件路径"></script>引入js文件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>引入js</title>
  7. </head>
  8. <body>
  9. <!-- 引入方式1. 在html里直接添加script标签,把js代码写在script标签内部 -->
  10. <script>
  11. alert("内部js");
  12. </script>
  13. <!-- 引入方式2. 把js代码写在单独的js文件里,html中使用script标签引入js文件 -->
  14. <script src="./js/demo.js"></script>
  15. </body>
  16. </html>

3. JS基础语法(ECMAScript)

        1.基础语法

        区分大小写

        每行结尾的分号可有可无

        注释的写法:

                单行注释:// 注释内容

                多行注释:/* 注释内容 */

        js常用的打印输出语句有:

        

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js基础语法</title>
  7. </head>
  8. <body>
  9. hello, javascript
  10. <script>
  11. //1. js区分大小写
  12. //2. 每行结尾的分号可写可不写
  13. //3. 注释的写法和Java一样
  14. // 使用浏览器弹窗
  15. window.alert("JavaScript简称js");
  16. // 把内容输出到页面上
  17. document.write("JavaScript借鉴了Java,但两者没有关系");
  18. // 把内容打印到浏览器控制台。
  19. // 使用浏览器打开此页面后,按F12,找到“Console”或者“控制台”就能看到输出的内容
  20. console.log("布兰登·艾克用了10多天就创建了JavaScript语言");
  21. </script>
  22. </body>
  23. </html>

        

        2.变量和常量定义

        在js中,变量的声明和java中还是不同的。首先js中主要通过如下3个关键字来声明变量的:

     命名规范:和Java相似

                组成字符可以是任何字母、数字、下划线(_)或美元符号($)

                数字不能开头

                建议使用驼峰命名

             

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js变量定义</title>
  7. </head>
  8. <body>
  9. <script>
  10. //js中一切变量定义都使用:let,无论是什么类型的变量
  11. // 老版本的js(ECMAScript5)中,使用var定义变量。从ECMAScript6开始,建议使用let定义变量
  12. let v1 = 3;
  13. let v2 = "hello";
  14. let v3 = true;
  15. let v4 = new Date();
  16. //js中的常量定义使用:const
  17. // 常量不允许修改值,执行代码时会报错(打开浏览器的F12,控制台里可看到报错信息)
  18. const PI = 3.14;
  19. PI = 3.1415;
  20. </script>
  21. </body>
  22. </html>

        3.数据类型和运算符

        虽然js是弱类型语言,但是也有数据类型,分为 :原始类型 和 引用类型

        

        

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js的数据类型</title>
  7. </head>
  8. <body>
  9. <script>
  10. //使用`typeof`函数判断变量的类型
  11. console.log(typeof 3); //number
  12. console.log(typeof "3") //string
  13. console.log(typeof true) //boolean
  14. console.log(typeof null) //object
  15. console.log(typeof undefined) //undefined
  16. let v;
  17. console.log(typeof v) //undefined。声明变量但未初始化,是undefined
  18. </script>
  19. </body>
  20. </html>

         js的运算符:绝大多数还是和java中一致

           

        

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>运算符</title>
  7. </head>
  8. <body>
  9. <script>
  10. //算术运算符:+, -, *, /, %, ++, --
  11. //赋值运算符:+=, -=, *=, /=, %=, =
  12. //比较运算符:>, <, >=, <=, ==, !=, ===, !==
  13. //逻辑运算符:&&, ||, !
  14. //三元运算符
  15. console.log(3 == "3") //结果是true。因为==只比较值,只要值相同,结果就是true
  16. console.log(3 === "3")//结果是false。因为===比较值和类型,只有两个都相同,结果才是true
  17. </script>
  18. </body>
  19. </html>

        4.流程控制语句

        js的流程控制语句和Java非常相似,也有:

                if, else, else if:用于条件判断

                for,while,do while:用于循环遍历

        用法也和Java的流程控制语句几乎相同,所以这里只介绍一个特殊情况:if判断

                js里条件判断,通常用于判断boolean值

                js也能对任意类型的值进行if判断:

        数字类型的0,对象类型的null,字符串类型的"",还有undefined判断为false

 

  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6. <script>
  7. if(0){
  8. console.log("0判断为true")
  9. }else{
  10. console.log("0判断为false")
  11. }
  12. if(""){
  13. console.log("空字符串判断为true")
  14. }else{
  15. console.log("空字符串判断为false")
  16. }
  17. if(null){
  18. console.log("null判断为true")
  19. }else{
  20. console.log("null判断为false")
  21. }
  22. if(undefined){
  23. console.log("undefined判断为true")
  24. }else{
  25. console.log("undefined判断为false")
  26. }
  27. </script>
  28. </body>
  29. </html>

4. js函数和事件【js的核心】

   1.函数名两种:    

        普通函数:有名称的函数,通过函数名来调用函数

        匿名函数:没有名的函数,要么赋值给一个变量然后通过变量名调用,要么把函数直接作为其它函数的实参     

注意:

  • js里没有函数重载,同名函数会覆盖掉

  • js的形参不需要声明类型,直接写形参名称即可

  • js的函数不写返回值类型,如果需要返回,在函数里直接return即可

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js的函数</title>
  7. </head>
  8. <body>
  9. <script>
  10. //js的函数:相当于Java里的方法,都是用于复用代码的
  11. //1. 普通函数。不需要写返回值类型;形参不需要写类型;
  12. function add(a, b){
  13. return a+b;
  14. }
  15. let res = add(3, 5);
  16. console.log(res)
  17. //2. 匿名函数。通常赋值给一个变量,通过变量名调用函数;也可以把匿名函数直接作为另外一个函数的实参
  18. let fn = function(a, b){
  19. return a * b;
  20. }
  21. let res2 = fn(3, 5);
  22. console.log(res2)
  23. </script>
  24. </body>
  25. </html>

        2.案例轮播图:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>轮播图</title>
  7. </head>
  8. <body>
  9. <!--
  10. 轮播图,需求:
  11. 打开页面之后,页面上显示一张图片
  12. 每间隔2秒钟,切换一张图片
  13. 分析:
  14. 1. 无论图片如何切换,必须要显示图片:就必须要使用img标签
  15. 2. 每间隔2秒钟做一些事情:周期性的执行任务,setInterval(函数对象, 2000)
  16. 3. 如何切换图片?只要把img的src属性值修改,就可以切换图片
  17. 需要使用js修改img的src属性值:document.getElementById("image").src = "新值"
  18. -->
  19. <img src="./image/1.jpg" alt="" id="image" width="500px">
  20. <script>
  21. //1. 把资料里的1.jpg到5.jpg拷贝到 VSCode的image文件夹里
  22. //2. 创建html页面,实现轮播图
  23. let image = document.getElementById("image");
  24. let filename = 1;
  25. setInterval(function() {
  26. if(++filename > 5){
  27. filename = 1;
  28. }
  29. image.src = "./image/" + filename + ".jpg";
  30. }, 2000);
  31. </script>
  32. </body>
  33. </html>

         3.js事件

                事件:用户的一些动作,或者浏览器的一些状态变化。js提供了监听事件的一些属性

                事件源:事件发生在哪。通常是html标签上

                响应行为:事件发生后,要执行的代码、实现的功能

            常见事件:

        绑定语法:        

                普通函数方式绑定,语法:<input type="button" value="按钮" onclick="show()">

                匿名函数方式绑定,纯js方式绑定,

                语法:document.getElementById("事件源标签id").onclick= function(){}

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>事件绑定1</title>
  6. </head>
  7. <body>
  8. <!--
  9. 需求:按钮点击时弹窗“点我干嘛”
  10. 分析:监听到按钮上发生 “被点击了” 事件时,要弹窗“点我干嘛”
  11. 事件源:按钮
  12. 事件:单击事件,要使用“onclick"监听到
  13. 响应行为: 弹窗“点我干嘛”
  14. 实现:
  15. 在事件源标签上加属性onclick,值是js代码“调用一个函数”
  16. -->
  17. <input type="button" value="按钮1" onclick="show()">
  18. <input type="button" value="按钮2" id="btn2">
  19. <script>
  20. function show(){
  21. alert("点我干嘛1");
  22. }
  23. document.getElementById("btn2").onclick = function(){
  24. alert("点我干嘛2");
  25. };
  26. </script>
  27. </body>
  28. </html>

        案例:鼠标控制轮播图

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>轮播图</title>
  7. </head>
  8. <body>
  9. <img src="./image/1.jpg" alt="" id="image" width="500px" onmouseenter="stop()" onmouseleave="start()">
  10. <script>
  11. //定义一个变量,用于存储定时器的id;在清除定时器时要使用
  12. let timer;
  13. //直接调用一次start方法,页面一打开就开始
  14. start();
  15. //开始轮播方法
  16. function start(){
  17. let image = document.getElementById("image");
  18. let filename = 1;
  19. timer = setInterval(function() {
  20. if(++filename > 5){
  21. filename = 1;
  22. }
  23. image.src = "./image/" + filename + ".jpg";
  24. }, 2000);
  25. }
  26. //停止轮播方法
  27. function stop(){
  28. clearInterval(timer)
  29. }
  30. </script>
  31. </body>
  32. </html>

5.js对象

        1.Array对象

        js的数组,更加类似于Java的集合,因为js数组的长度可变

        定义数组:

                let 变量名 = new Array(元素1, 元素2, 元素3, ...); 
                let 变量名 = [ 元素1, 元素2, 元素3, ... ]; 

        遍历于存储:

                arr[索引] = 值;
                let v = arr[索引];

常用属性名与方法:     

        

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js数组</title>
  7. </head>
  8. <body>
  9. <script>
  10. //1. 定义数组
  11. // new Array(元素1,元素2,...)
  12. let arr1 = new Array("A", 1, true);
  13. console.log(arr1)
  14. // [元素1,元素2,...]
  15. let arr2 = ["B", 2, false];
  16. console.log(arr2)
  17. //2. 循环遍历
  18. let arr = ["A", "B", "C", "D", "E"];
  19. for (let i = 0; i < arr.length; i++) {
  20. console.log(arr[i])
  21. }
  22. //3. length属性。
  23. console.log("arr长度:", arr.length); //5
  24. // 设置数组长度。
  25. // 如果设置的值小,就截断数组;如果设置的值大,就扩容数组,没有值的元素是undefined
  26. arr.length = 3;
  27. console.log("设置arr长度为3后:", arr); // A, B, C
  28. //4. 常用方法
  29. // 循环遍历forEach
  30. arr.forEach(function(value){
  31. console.log("arr遍历元素值:", value)
  32. })
  33. // 尾部添加元素
  34. arr.push("hello")
  35. console.log("arr尾部添加元素hello后:", arr); //A, B, C, hello
  36. // 从索引2开始,删除1个元素
  37. arr.splice(2, 1)
  38. console.log("arr删除索引1元素后:", arr) //A, B, hello
  39. </script>
  40. </body>
  41. </html>

  2.String对象

    定义字符串:

        let 变量名 = new String("hello"); 
        var 变量名 = "hello";

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>js字符串</title>
  7. </head>
  8. <body>
  9. <script>
  10. //定义字符串:
  11. let str = " hello, world ";
  12. console.log("str字符串的长度:", str.length)
  13. console.log("从str中查找wo:", str.indexOf("wo"))
  14. console.log(str.trim())
  15. console.log("从str中截取索引3到索引5的子串:", str.substring(3,5))
  16. </script>
  17. </body>
  18. </html>

        3.JSON对象【重点】

        JSON对象:JavaScript Object Notation,JavaScript对象标记法,是通过JavaScript标记法书写的文本,通常作为数据传输的格式。        

        json使用场景

        可以作为配置文件的格式。例如我们的讲义所用的typora软件,其配置文件就是json格式的

        可以作为前后台交互的数据载体。前后台交互时,我们需要传输数据,为了方便双方解析数据,可以采用json格式

         

json常用方法:

        

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>JS-对象-JSON</title>
  8. </head>
  9. <body>
  10. </body>
  11. <script>
  12. // json格式的字符串 ==> json对象
  13. let jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';
  14. let obj = JSON.parse(jsonstr);
  15. console.log(obj.name);
  16. // json对象 ==> json格式的字符串
  17. console.log(JSON.stringify(obj));
  18. </script>
  19. </html>

 6.BOM对象

        BOM:Broswer Object Model,浏览器对象模型。BOM对象提供了操作浏览器的方法,我们通过BOM对象可以让浏览器弹窗、切换历史记录等等。

        1.window对象

        window对象是所有bom对象的顶级对象,可以通过window.来获取其它4个bom对象,只是window.通常省略不写

        

        2.location对象

        location是指代浏览器的地址栏对象,常用于获取或者设置浏览器的地址信息:

  1. <html>
  2. <head>
  3. <title>location对象 </title>
  4. </head>
  5. <body>
  6. <script>
  7. //获取浏览器地址栏信息
  8. alert(location.href);
  9. //设置浏览器地址栏信息
  10. location.href = "https://www.itcast.cn";
  11. </script>
  12. </body>
  13. </html>

7.DOM对象        

1.DOM:Document Object Model 文档对象模型。JavaScript 将 HTML 文档的各个组成部分封装为对象,通过这些对象我们可以操作HTML的标签、属性、样式等等。

  • Document:整个文档对象

  • Element:元素对象

  • Attribute:属性对象

  • Text:文本对象

  • Comment:注释对象

2.DOM操作的API 

要想通过DOM操作网页,主要有两个步骤:

  • 想操作哪个标签,就获取哪个标签对象:Element

  • 通过Element对象,操作标签的属性、内容、或样式

操作标签的属性

操作标签的属性很简单,通常是:

  • 获取属性值:let v = 标签对象.属性名

  • 设置属性值:标签对象.属性名 = 值

操作标签的内容

所谓标签的内容,就是开始标签和结束标签中间的部分。例如:<div> 这里是标签的内容 </div>

  • 获取标签内容:let v = 标签对象.innerHTML

  • 设置标签内容:标签对象.innerHTML = "新内容",会把标签里旧内容覆盖掉

  1. <html>
  2. <head>
  3. <title>获取标签</title>
  4. </head>
  5. <body>
  6. 帐号:<input type="text" name="username" id="username" class="item"> <br>
  7. 密码:<input type="password" name="password" class="item"> <br>
  8. 性别:<input type="radio" name="gender" value="male">
  9. <input type="radio" name="gender" value="female"><br>
  10. <script>
  11. //根据id获取标签:
  12. let usernameInput = document.getElementById("username");
  13. console.log(usernameInput);
  14. //根据tagName获取标签:
  15. let inputArray = document.getElementsByTagName("input");
  16. console.log(inputArray);
  17. //根据name属性值获取标签:
  18. let genderRadios = document.getElementsByName("gender");
  19. console.log(genderRadios);
  20. //根据class属性值获取标签:
  21. let items = document.getElementsByClassName("item");
  22. console.log(items);
  23. </script>
  24. </body>
  25. </html>
  26. --------------------
  27. <html>
  28. <head>
  29. <title>操作属性</title>
  30. </head>
  31. <body>
  32. <input type="password" id="pwd">
  33. <input type="button" value="查看密码" onmousedown="showPwd()" onmouseup="hidePwd()">
  34. <script>
  35. function showPwd(){
  36. document.getElementById("pwd").type="text";
  37. }
  38. function hidePwd(){
  39. document.getElementById("pwd").type="password";
  40. }
  41. </script>
  42. </body>
  43. </html>
  44. ----------------------
  45. <html>
  46. <head>
  47. <title>操作标签内容</title>
  48. </head>
  49. <body>
  50. <div id="d1">
  51. hello
  52. </div>
  53. <script>
  54. let d1 = document.getElementById("d1");
  55. console.log(d1.innerHTML);
  56. d1.innerHTML = "JavaScript";
  57. </script>
  58. </body>
  59. </html>

8.案例全选全消

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style type="text/css">
  7. table {
  8. width: 500px;
  9. margin: 0 auto;
  10. border-collapse: collapse;
  11. }
  12. td, th {
  13. border: 1px solid blue;
  14. text-align: center;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <table>
  20. <tr>
  21. <th style="width:100px;">
  22. <input type="checkbox" id="checkall" title="全选/全消" onclick="check()" />
  23. <input type="button" value="反选" onclick="inverse()">
  24. </th>
  25. <th>学号</th>
  26. <th>姓名</th>
  27. <th>年龄</th>
  28. </tr>
  29. <tr>
  30. <td>
  31. <input type="checkbox" class="item"/>
  32. </td>
  33. <td>1</td>
  34. <td></td>
  35. <td></td>
  36. </tr>
  37. <tr>
  38. <td>
  39. <input type="checkbox" class="item"/>
  40. </td>
  41. <td>2</td>
  42. <td></td>
  43. <td></td>
  44. </tr>
  45. <tr>
  46. <td>
  47. <input type="checkbox" class="item"/>
  48. </td>
  49. <td>3</td>
  50. <td></td>
  51. <td></td>
  52. </tr>
  53. <tr>
  54. <td>
  55. <input type="checkbox" class="item"/>
  56. </td>
  57. <td>4</td>
  58. <td></td>
  59. <td></td>
  60. </tr>
  61. <tr>
  62. <td>
  63. <input type="checkbox" class="item"/>
  64. </td>
  65. <td>5</td>
  66. <td></td>
  67. <td></td>
  68. </tr>
  69. <tr>
  70. <td>
  71. <input type="checkbox" class="item"/>
  72. </td>
  73. <td>6</td>
  74. <td></td>
  75. <td></td>
  76. </tr>
  77. </table>
  78. <!--
  79. 需求:
  80. 点击checkall的时候,如果checkall是选中状态,设置所有的item都设置为选中状态;
  81. 点击checkall的时候,如果checkall是未选中状态,设置所有的item都设置为未选中状态;
  82. -->
  83. <script>
  84. function check(){
  85. //checked是一个true或fasle状态,v是true或false
  86. //1. 先获取checkall的状态:选中、取消
  87. let v = document.getElementById("checkall").checked;
  88. //2. 把checkall的状态设置给所有的item
  89. let items = document.getElementsByClassName("item");
  90. for(let i=0; i<items.length; i++){
  91. items[i].checked = v;
  92. }
  93. }
  94. /**
  95. * 反选:
  96. * 思路1:获取所有的item,循环遍历每一个,获取选中状态取反
  97. * 思路2:获取所有的item,循环遍历每一个,模拟一次点击操作
  98. */
  99. function inverse(){
  100. let items = document.getElementsByClassName("item");
  101. for(let i=0; i<items.length; i++){
  102. items[i].checked = !items[i].checked;
  103. }
  104. }
  105. </script>
  106. </body>
  107. </html>

  9.JS对象手册

   我们这是学入门和一些常用的属性,很多还是用要查  

        我们可以打开W3school在线学习文档,来到首页,在左侧栏找到浏览器脚本下的JavaScript,如下图所示:

        

                       

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/620943
推荐阅读
相关标签
  

闽ICP备14008679号