基本语法

1.引入方式

  • 第一种
    1. <script>
    2. js代码
    3. </script>
  • 第二种
    1. <script src="js文件"></script>

2.注释

  • 单行注释
    1. <script>
    2. //这是单行注释
    3. </script>
  • 多行注释
    1. <script>
    2. /*
    3. 这是多行注释
    4. */
    5. </script>

3.输入输出语句

  • prompt(),范例
    1. prompt("请输入:");
    2. //该语句在页面弹出一个输入框,并且带有提示
  • alert(),范例
    1. alert("提示");
  • console.log(),范例
    1. console.log("控制台输出的内容");
  • document.write(),范例
    1. document.write("向页面输出内容");

4.变量和常量

  • JavaScript是弱类型语言,定义变量时不用区分具体数据类型

  • 定义局部变量
    语法:let 变量名 = 值;
    范例:

    1. let name = "张三";
    2. let age = 23;
  • 定义全局变量
    语法:变量名 = 值;
    范例:
    1. school = "清华大学";
  • 定义常量
    语法:const 常量名 = 值;
    范例:
    1. const PI = 3.1415926;

5.原始数据类型

类型 说明
boolean 布尔类型,true或false
undefined 未定义,即定义变量时没有赋值
null 声明null为变量值
number 整数或浮点数
string 字符串
bigint 大整数,例如bigint num = 10n;需要在数字后加上n

判断原始数据类型的方法:

使用typeof()函数

范例:

  1. let l1 = true;
  2. document.write(typeof(l1)+"<br/>"); //输出boolean
  3. let l2;
  4. document.write(typeof(l2)+"<br/>"); //输出undefined
  5. let l3 = null;
  6. document.write(typeof(l3)+"<br/>"); //输出Object,null被认为是对象占位符
  7. let l4 = 123;
  8. document.write(typeof(l4)+"<br/>"); //输出number
  9. let l5 = "abc";
  10. document.write(typeof(l5)+"<br/>"); //输出string
  11. let l6 = 10n;
  12. document.write(typeof(l6)+"<br/>"); //输出bigint

6.运算符

  • JavaScript中运算符和Java的大致相同
  • 不同点:

    1. ==号比较的是变量的值是否相同,如字符串的”10”跟数字的10比较返回true
    2. === 号比较类型和值,则字符串的”10”跟数字的10比较返回false
    3. 字符串类型的数字计算时会发生类型转换

7.流程控制语句

  • 与Java的相同,但是注意在流程控制语句中的变量定义语法不同

8.数组

  • JavaScript数组长度和类型没有限制
    定义一个数组的语法是:let 数组名 = [元素];
    范例:
    1. let arr = [1,2,3];
  • 获取数组长度
    使用函数:数组名.length
    范例:
    1. arr.length;
  • 数组复制
    语法:数组1 = [...数组2];
    范例:
    1. let a = [1,2,3];
    2. let b = [...a];//数组b内容也是1,2,3
  • 数组合并
    语法:数组1 = [...数组2,数组3];将数组2和3合并到1
    范例:
    1. let a = [1,2,3];
    2. let b = [4,5,6];
    3. let c = [...a,...b];//数组c内容是1,2,3,4,5,6
  • 字符串转数组
    语法:数组 = [...字符串];
    范例:
    1. let s = "lxq";
    2. let a = [...s];a数组内容是l,x,q

9.函数

  • JavaScript中的函数类似于Java中的方法

  • 普通函数
    语法:

    1. function 方法名(参数){
    2. 方法体;
    3. return 返回值;
    4. }


注意:如果不需要返回值则不用写return语句,参数不用写类型

  • 可变参数
    语法:
    1. function 方法名(...参数){
    2. 方法体;
    3. return 返回值;
    4. }
  • 匿名函数
    语法:
    1. function(参数){
    2. 方法体;
    3. return 返回值;
    4. }

DOM

1.概述

  • DOM指document object model,即文档对象模型
  • 将HTML文档各个组成部分封装为对象,借助这些对象可以对HTML文档进行增删改查的动态操作
  • 相关对象:

    1. Document,表示文档对象
    2. Element,元素对象
    3. Attribute,属性对象
    4. Text,文本对象

2.元素对象的操作

  • 根据document文档对象来获取元素对象 | 方法 | 说明 | | —- | —- | | getElementById(id属性值) | 根据id属性获取元素对象 | | getElementsByTagName(标签名) | 根据标签名获取元素对象 | | getElementsByName(name属性值) | 根据name属性获取元素对象 | | getElementsByClassName(class属性值) | 根据class属性获取元素对象 |
  • 根据当前元素对象获取父元素对象
    子元素对象.parentElement

  • 通过文档对象创建新元素对象
    document.createElement(标签名);

  • 将指定子元素对象添加到父元素中
    父元素对象.appendChild(子元素对象);

  • 父元素删除指定的子元素
    父元素对象.removeChild(子元素对象);

  • 父元素用新子元素替换旧子元素
    父元素对象.replace(新元素,旧元素);

3.元素内属性操作

  • 给元素设置属性
    setAttribute(属性名,属性值);

  • 根据属性名获取属性值
    getAttribute(属性名);

  • 根据属性名移除属性
    removeAttribute(属性名);

  • 为元素添加样式
    方式一:
    元素对象.style.样式=值;
    如:

    1. let ele = document.getElementById("a");
    2. ele.style.color = "red";


方式二:
元素对象.className = "类选择器名";

4.元素内文本操作

  • 设置文本内容,不解析标签
    元素对象.innerText="文本内容";
    注意:不解析标签是指文本内容如果有HTML标签也不会解析,只会当成文本

  • 设置文本内容,解析标签
    元素对象.innerHTML="文本内容";
    注意:这里的文本内容会被解析标签

事件

  • 事件是某些组件完成某些操作时会触发的代码

  • 常用事件 | 事件 | 说明 | | —- | —- | | onload | 某个页面或图像被加载完成 | | onsubmit | 表单提交时 | | onclick | 鼠标点击事件 | | ondblclick | 鼠标双击 | | onblur | 元素失去焦点 | | onfocus | 元素获得焦点 | | onchange | 用于改变域的内容 |

  • 绑定事件的方式

    1. 通过标签中事件属性进行绑定
      范例:
      1. <button onclick="触发的操作"></button>
  1. 通过DOM元素进行绑定
    1. let b = document.getElementById("btn");
    2. b.onclick=function(){//使用匿名方法
    3. 触发的操作;
    4. }

面向对象

1.定义类的方式

  • 方式1
    语法:
    1. class 类名{
    2. //构造方法
    3. constructor(变量列表){
    4. 变量赋值;
    5. }
    6. //普通方法
    7. 方法名(参数列表){
    8. 方法体;
    9. return 返回值;
    10. }
    11. }


用法:

  1. let 对象名 = new 类名(实际变量值);
  2. 对象名.变量名;
  3. 对象名.方法名();
  • 方式2
    语法:

    1. //在定义类的时候已经创建了对象
    2. let 对象名 = {
    3. 变量名 : 变量值,
    4. 变量名 : 变量值,
    5. 方法名 : function(参数列表){
    6. 方法体;
    7. return 返回值;
    8. },
    9. 方法名 : function(参数列表){
    10. 方法体;
    11. return 返回值;
    12. }
    13. };


用法:

  1. 对象名.变量名;
  2. 对象名.方法名();

2.继承

  • JS中顶级父类是Object

  • 继承需要使用extends关键字
    语法:

    1. class 子类 extend 父类{}
  • 继承范例 ```javascript class Person{ constructor(name,age){

    1. this.name = name;
    2. this.age = age;

    }

    show(){

    1. document.write(this.name+","+this.age+"<br/>");

    } }

class Worker extends Person{ constructor(name,age,salary){ //使用super()调用父类构造方法 super(name,age); this.salary = salary; }

show(){ document.write(this.name+”,”+this.age+”,”+this.salary); } }

let worker = new Worker(“张三”,23,15000); worker.show();

  1. <a name="74d2ab3f"></a>
  2. ## 内置对象
  3. <a name="cb288b16"></a>
  4. ### 1.Number对象
  5. - `parseFloat(s)`方法,将字符串浮点数转为浮点数
  6. - `parseInt(s)`方法,将字符串整数转为整数
  7. <a name="1b6b3281"></a>
  8. ### 2.Math对象
  9. - `ceil(x)`方法,向上取整
  10. - `floor(x)`方法,向下取整
  11. - `round(x)`方法,四舍五入
  12. - `random()`方法,返回0到1之间的随机数,不含1
  13. - `pow(x,y)`方法,x的y次方
  14. <a name="c371f53a"></a>
  15. ### 3.Data对象
  16. -
  17. 构造方法
  18. | 方法 | 说明 |
  19. | --- | --- |
  20. | Date() | 根据当前事件创建对象 |
  21. | Date(value) | 指定毫秒值创建对象 |
  22. | Date(year,month[,day,hour,min,sec,mill]) | 指定字段创建对象,月份是0到11 |
  23. -
  24. 常用方法
  25. | 方法 | 说明 |
  26. | --- | --- |
  27. | getFullYear() | 获取年份 |
  28. | getMonth() | 获取月份 |
  29. | getDate() | 获取天数 |
  30. | getHours() | 获取小时 |
  31. | getMinutes() | 获取分钟 |
  32. | getSeconds() | 获取秒 |
  33. | getTime() | 返回时间原点至今毫秒数 |
  34. | toLocalString() | 返回本地日期格式的字符串 |
  35. <a name="78a23ddf"></a>
  36. ### 4.String对象
  37. -
  38. 构造方法
  39. | 方法 | 说明 |
  40. | --- | --- |
  41. | String(value) | 根据指定字符串创建对象 |
  42. | let s = "字符串" | 直接赋值 |
  43. -
  44. 常用方法
  45. | 方法 | 说明 |
  46. | --- | --- |
  47. | length属性 | 获取字符串长度 |
  48. | charAt(index) | 获取指定索引处字符 |
  49. | indexOf(value) | 获取指定字符串出现的索引位置,不存在返回-1 |
  50. | substring(start,end) | 根据给出范围截取字符串,含头不含尾 |
  51. | split(value) | 根据指定规则切割字符串,返回数组 |
  52. | replace(old,new) | 使用新字符替换旧字符 |
  53. <a name="006c0c8f"></a>
  54. ### 5.RegExp对象
  55. -
  56. 构造方法
  57. | 方法 | 说明 |
  58. | --- | --- |
  59. | RegExp(规则) | 根据制定规则创建对象 |
  60. | let reg = /^规则$/ | 直接赋值 |
  61. -
  62. 匹配方法:`test(字符串)`方法,用于查看字符串是否符合匹配规则
  63. <a name="e1e17614"></a>
  64. ### 6.Array对象
  65. -
  66. 常用方法
  67. | 方法 | 说明 |
  68. | --- | --- |
  69. | push(元素) | 添加元素到数组末尾 |
  70. | pop() | 删除数组末尾元素 |
  71. | shift() | 删除数组最前面元素 |
  72. | includes(元素) | 判断数组是否包含指定的元素 |
  73. | reverse() | 反转数组中的元素 |
  74. | sort() | 对数组元素排序 |
  75. <a name="bb0d043f"></a>
  76. ### 7.Set对象
  77. -
  78. 元素唯一,存取顺序一致
  79. -
  80. 构造方法:`Set()`
  81. -
  82. 常用方法
  83. | 方法 | 说明 |
  84. | --- | --- |
  85. | add(元素) | 添加元素 |
  86. | size属性 | 获取集合长度 |
  87. | keys() | 获取迭代器对象 |
  88. | delete(元素) | 删除指定元素 |
  89. -
  90. Set集合遍历范例
  91. ```javascript
  92. let set = new Set();
  93. set.add("a");
  94. set.add("b");
  95. let st = set.keys();
  96. for(let i = 0;i < set.size;i++){
  97. document.write(st.next().value);
  98. }

8.Map对象

  • key唯一,存取顺序一致

  • 构造方法:Map()

  • 常用方法 | 方法 | 说明 | | —- | —- | | set(key,value) | 向集合添加元素 | | size属性 | 获取集合长度 | | get(key) | 根据key获取value | | entries() | 获取迭代器对象 | | delete(key) | 根据key删除键值对 |

  • Map集合遍历范例
    1. let map = new Map();
    2. map.set(1,"a");
    3. map.set(2,"b");
    4. let et = map.entries();
    5. for(let i = 0;i < map.size;i++){
    6. document.write(et.next().value);
    7. }

9.JSON对象

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式

  • 它是基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据

  • 简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于计算机解析和生成,并有效提升网络传输效率

  • 常用方法 | 方法 | 说明 | | —- | —- | | stringfy(对象) | 将指定对象转换为json格式字符串 | | parse(字符串) | 将指定json格式字符串解析成对象 |

  • 范例
    1. let weather = {
    2. city : "北京";
    3. date : "2022-08-08";
    4. temperature : "10~20";
    5. };
    6. let str = JSON.stringfy(weather);
    7. let weather2 = JSON.parse(str);

BOM

  • BOM(Browser Object Model),是指浏览器对象模型
  • 将浏览器各个组成部分封装成不同的对象,方便进行操作
  • 具体有如下的对象

    1. Navigator,表示浏览器对象
    2. Window,窗口对象
    3. Location,地址栏对象
    4. History,窗口历史对象
    5. Screen,显示屏幕对象
  • Window窗口对象常用功能

    • 定时器

      1. 唯一标识 setTimeout(功能,毫秒值);方法,用于设置一次性定时器,返回一个唯一标识
      2. clearTimeout(标识);方法,根据标识取消一次性定时器
      3. 唯一标识 setInterval(功能,毫秒值);方法,设置循环定时器,返回一个唯一标识
      4. clearInterval(标识);方法,根据标识取消循环定时器
    • 加载事件:window.onload=触发的事件,用于页面加载完毕时触发的事件
  • Location地址栏对象常用功能

    • 设置href属性,通过设置这个属性实现浏览器读取并显示新的URL的内容