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