目录
基本语法
1.引入方式
2.注释
3.输入输出语句
4.变量和常量
5.原始数据类型
6.运算符
7.流程控制语句
8.数组
9.函数
DOM
1.概述
2.元素对象的操作
3.元素内属性操作
4.元素内文本操作
事件
面向对象
1.定义类的方式
2.继承
内置对象
1.Number对象
2.Math对象
3.Data对象
4.String对象
5.RegExp对象
6.Array对象
7.Set对象
8.Map对象
9.JSON对象
BOM
基本语法
1.引入方式
-
第一种
<script> js代码 </script>
-
第二种
<script src="js文件"></script>
2.注释
-
单行注释
<script> //这是单行注释 </script>
-
多行注释
<script> /* 这是多行注释 */ </script>
3.输入输出语句
-
prompt(),范例
prompt("请输入:"); //该语句在页面弹出一个输入框,并且带有提示
-
alert(),范例
alert("提示");
-
console.log(),范例
console.log("控制台输出的内容");
-
document.write(),范例
document.write("向页面输出内容");
4.变量和常量
-
JavaScript是弱类型语言,定义变量时不用区分具体数据类型
-
定义局部变量
语法:
let 变量名 = 值;
范例:
let name = "张三"; let age = 23;
-
定义全局变量
语法:
变量名 = 值;
范例:
school = "清华大学";
-
定义常量
语法:
const 常量名 = 值;
范例:
const PI = 3.1415926;
5.原始数据类型
类型 | 说明 |
---|---|
boolean | 布尔类型,true或false |
undefined | 未定义,即定义变量时没有赋值 |
null | 声明null为变量值 |
number | 整数或浮点数 |
string | 字符串 |
bigint | 大整数,例如bigint num = 10n;需要在数字后加上n |
判断原始数据类型的方法:
使用typeof()
函数
范例:
let l1 = true; document.write(typeof(l1)+"<br/>"); //输出boolean let l2; document.write(typeof(l2)+"<br/>"); //输出undefined let l3 = null; document.write(typeof(l3)+"<br/>"); //输出Object,null被认为是对象占位符 let l4 = 123; document.write(typeof(l4)+"<br/>"); //输出number let l5 = "abc"; document.write(typeof(l5)+"<br/>"); //输出string let l6 = 10n; document.write(typeof(l6)+"<br/>"); //输出bigint
6.运算符
-
JavaScript中运算符和Java的大致相同
-
不同点:
-
==
号比较的是变量的值是否相同,如字符串的"10"跟数字的10比较返回true -
===
号比较类型和值,则字符串的"10"跟数字的10比较返回false -
字符串类型的数字计算时会发生类型转换
-
7.流程控制语句
-
与Java的相同,但是注意在流程控制语句中的变量定义语法不同
8.数组
-
JavaScript数组长度和类型没有限制
定义一个数组的语法是:
let 数组名 = [元素];
范例:
let arr = [1,2,3];
-
获取数组长度
使用函数:
数组名.length
范例:
arr.length;
-
数组复制
语法:
数组1 = [...数组2];
范例:
let a = [1,2,3]; let b = [...a];//数组b内容也是1,2,3
-
数组合并
语法:
数组1 = [...数组2,数组3];
将数组2和3合并到1范例:
let a = [1,2,3]; let b = [4,5,6]; let c = [...a,...b];//数组c内容是1,2,3,4,5,6
-
字符串转数组
语法:
数组 = [...字符串];
范例:
let s = "lxq"; let a = [...s];a数组内容是l,x,q
9.函数
-
JavaScript中的函数类似于Java中的方法
-
普通函数
语法:
function 方法名(参数){ 方法体; return 返回值; }
注意:如果不需要返回值则不用写return语句,参数不用写类型
-
可变参数
语法:
function 方法名(...参数){ 方法体; return 返回值; }
-
匿名函数
语法:
function(参数){ 方法体; return 返回值; }
DOM
1.概述
-
DOM指document object model,即文档对象模型
-
将HTML文档各个组成部分封装为对象,借助这些对象可以对HTML文档进行增删改查的动态操作
-
相关对象:
-
Document,表示文档对象
-
Element,元素对象
-
Attribute,属性对象
-
Text,文本对象
-
2.元素对象的操作
-
根据document文档对象来获取元素对象
方法 说明 getElementById(id属性值) 根据id属性获取元素对象 getElementsByTagName(标签名) 根据标签名获取元素对象 getElementsByName(name属性值) 根据name属性获取元素对象 getElementsByClassName(class属性值) 根据class属性获取元素对象 -
根据当前元素对象获取父元素对象
子元素对象.parentElement
-
通过文档对象创建新元素对象
document.createElement(标签名);
-
将指定子元素对象添加到父元素中
父元素对象.appendChild(子元素对象);
-
父元素删除指定的子元素
父元素对象.removeChild(子元素对象);
-
父元素用新子元素替换旧子元素
父元素对象.replace(新元素,旧元素);
3.元素内属性操作
-
给元素设置属性
setAttribute(属性名,属性值);
-
根据属性名获取属性值
getAttribute(属性名);
-
根据属性名移除属性
removeAttribute(属性名);
-
为元素添加样式
方式一:
元素对象.style.样式=值;
如:
let ele = document.getElementById("a"); ele.style.color = "red";
方式二:
元素对象.className = "类选择器名";
4.元素内文本操作
-
设置文本内容,不解析标签
元素对象.innerText="文本内容";
注意:不解析标签是指文本内容如果有HTML标签也不会解析,只会当成文本
-
设置文本内容,解析标签
元素对象.innerHTML="文本内容";
注意:这里的文本内容会被解析标签
事件
-
事件是某些组件完成某些操作时会触发的代码
-
常用事件
事件 说明 onload 某个页面或图像被加载完成 onsubmit 表单提交时 onclick 鼠标点击事件 ondblclick 鼠标双击 onblur 元素失去焦点 onfocus 元素获得焦点 onchange 用于改变域的内容 -
绑定事件的方式
-
通过标签中事件属性进行绑定
范例:
<button οnclick="触发的操作"></button>
-
通过DOM元素进行绑定
let b = document.getElementById("btn"); b.οnclick=function(){//使用匿名方法 触发的操作; }
-
面向对象
1.定义类的方式
-
方式1
语法:
class 类名{ //构造方法 constructor(变量列表){ 变量赋值; } //普通方法 方法名(参数列表){ 方法体; return 返回值; } }
用法:
let 对象名 = new 类名(实际变量值); 对象名.变量名; 对象名.方法名();
-
方式2
语法:
//在定义类的时候已经创建了对象 let 对象名 = { 变量名 : 变量值, 变量名 : 变量值, 方法名 : function(参数列表){ 方法体; return 返回值; }, 方法名 : function(参数列表){ 方法体; return 返回值; } };
用法:
对象名.变量名; 对象名.方法名();
2.继承
-
JS中顶级父类是Object
-
继承需要使用extends关键字
语法:
class 子类 extend 父类{}
-
继承范例
class Person{ constructor(name,age){ this.name = name; this.age = age; } show(){ 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.Number对象
-
parseFloat(s)
方法,将字符串浮点数转为浮点数 -
parseInt(s)
方法,将字符串整数转为整数
2.Math对象
-
ceil(x)
方法,向上取整 -
floor(x)
方法,向下取整 -
round(x)
方法,四舍五入 -
random()
方法,返回0到1之间的随机数,不含1 -
pow(x,y)
方法,x的y次方
3.Data对象
-
构造方法
方法 说明 Date() 根据当前事件创建对象 Date(value) 指定毫秒值创建对象 Date(year,month[,day,hour,min,sec,mill]) 指定字段创建对象,月份是0到11 -
常用方法
方法 说明 getFullYear() 获取年份 getMonth() 获取月份 getDate() 获取天数 getHours() 获取小时 getMinutes() 获取分钟 getSeconds() 获取秒 getTime() 返回时间原点至今毫秒数 toLocalString() 返回本地日期格式的字符串
4.String对象
-
构造方法
方法 说明 String(value) 根据指定字符串创建对象 let s = "字符串" 直接赋值 -
常用方法
方法 说明 length属性 获取字符串长度 charAt(index) 获取指定索引处字符 indexOf(value) 获取指定字符串出现的索引位置,不存在返回-1 substring(start,end) 根据给出范围截取字符串,含头不含尾 split(value) 根据指定规则切割字符串,返回数组 replace(old,new) 使用新字符替换旧字符
5.RegExp对象
-
构造方法
方法 说明 RegExp(规则) 根据制定规则创建对象 let reg = /^规则$/ 直接赋值 -
匹配方法:
test(字符串)
方法,用于查看字符串是否符合匹配规则
6.Array对象
-
常用方法
方法 说明 push(元素) 添加元素到数组末尾 pop() 删除数组末尾元素 shift() 删除数组最前面元素 includes(元素) 判断数组是否包含指定的元素 reverse() 反转数组中的元素 sort() 对数组元素排序
7.Set对象
-
元素唯一,存取顺序一致
-
构造方法:
Set()
-
常用方法
方法 说明 add(元素) 添加元素 size属性 获取集合长度 keys() 获取迭代器对象 delete(元素) 删除指定元素 -
Set集合遍历范例
let set = new Set(); set.add("a"); set.add("b"); let st = set.keys(); for(let i = 0;i < set.size;i++){ document.write(st.next().value); }
8.Map对象
-
key唯一,存取顺序一致
-
构造方法:
Map()
-
常用方法
方法 说明 set(key,value) 向集合添加元素 size属性 获取集合长度 get(key) 根据key获取value entries() 获取迭代器对象 delete(key) 根据key删除键值对 -
Map集合遍历范例
let map = new Map(); map.set(1,"a"); map.set(2,"b"); let et = map.entries(); for(let i = 0;i < map.size;i++){ document.write(et.next().value); }
9.JSON对象
-
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式
-
它是基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据
-
简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于计算机解析和生成,并有效提升网络传输效率
-
常用方法
方法 说明 stringfy(对象) 将指定对象转换为json格式字符串 parse(字符串) 将指定json格式字符串解析成对象 -
范例
let weather = { city : "北京"; date : "2022-08-08"; temperature : "10~20"; }; let str = JSON.stringfy(weather); let weather2 = JSON.parse(str);
BOM
-
BOM(Browser Object Model),是指浏览器对象模型
-
将浏览器各个组成部分封装成不同的对象,方便进行操作
-
具体有如下的对象
-
Navigator,表示浏览器对象
-
Window,窗口对象
-
Location,地址栏对象
-
History,窗口历史对象
-
Screen,显示屏幕对象
-
-
Window窗口对象常用功能
-
定时器
-
唯一标识 setTimeout(功能,毫秒值);
方法,用于设置一次性定时器,返回一个唯一标识 -
clearTimeout(标识);
方法,根据标识取消一次性定时器 -
唯一标识 setInterval(功能,毫秒值);
方法,设置循环定时器,返回一个唯一标识 -
clearInterval(标识);
方法,根据标识取消循环定时器
-
-
加载事件:
window.onload=触发的事件
,用于页面加载完毕时触发的事件
-
-
Location地址栏对象常用功能
-
设置href属性,通过设置这个属性实现浏览器读取并显示新的URL的内容
-