JavaScript简称js,是网页的血液。它是网页开发的唯一可选语言,增加了网页的动态性与交互性,同时Nodejs可以进行服务器的开发,也可以进行数据库文件的读写。js是为网页提供动态性,与用户交互,是网页开发的唯一语言(js不能读写磁盘), Nodejs是服务器开发
js语句分为三大类
1.ECMAScript:js基础语法
2.BOM:浏览器 对象 模型,把浏览器抽象成一个对象,用js语法来操作浏览器
3.DOM:文档 对象 模型,使用js来操作页面元素
书写方式:在网页外或者网页内都可以进行书写,需要在script标签内部编写,注意在外部编写的需要使用script语句中的src来引入,类似于link中的src
变量的声明方式有三种:
const:声明常量,必须赋值且不能更改
let:声明局部变量,出语句块会失效,没有赋值之前不能访问,且在语句块中只能声明一次
var:声明变量,自带变量提升效果,可以多次声明,没有赋值也可以访问,显示undefined
数据类型:
基础类型(使用typeof检测类型)
Number:数字
String:字符串
Boolean:布尔值
Null:空值
undefined:声明一个变量未赋值、未定义
特殊数据类型(使用instanceof检测类型)
Array:数组,相当于python中的列表
Object:对象,相当于python中的字典
运算符
算术运算符
+, -, *, /, %
赋值运算符
= += -= %= *=
++自增
a++ 先返回再自加1
++a先自加1再返回
--自减
a--先返回再自减
--a先自减再返回
比较运算符
>, <, <=, >=, !=
== 只判断值是否相同
=== 即判断值是否相等,又判断类型是否一致
逻辑运算符
&& || !
js中的假是:null,‘’, false
[],{}:空数组与空对象都是真
&&:左侧为假返回左侧,左侧为真返回右侧
||:左侧为假返回右侧,左侧为真返回左侧
函数
函数的定义:函数是一段可重复使用的代码块,它可以接受输入参数(也称为参数)并执行 预定义的操作,然后返回一个值。函数可以在程序中被调用或执行,并且可以被多次调用
函数声明格式 :
function 函数名 (形参){
实参=形参
对实参进行操作
可以有返回值return函数返回值,也可以设置变量或者嵌套函数
}
常用的数据操作
常用的对字符串的操作:
concat:字符串拼接(对源字符串没有影响)
charAt:根据索引输入字符
indexOf:根据字符输出索引(只输出字符串中出现的第一个),找不到返回-1
replace(‘替换目标‘, ‘替换内容’):字符串替换
slice:字符串切片,不包含stop部分
split:切割字符串,支持空字符切割
toLowerCase:转小写
toUpperCase:转大写
trim:剔除空格
re正则:search返回索引,match返回对象
常用的对数组的操作:
普通方法:
concat:数组连接不影响原数组
include:是否包含某元素,返回bool值
indexOf:返回元素索引,不存在返回-1
join:将元素使用字符串拼接
pop:删除末尾元素
push:末尾插入元素
shift:删除开头元素
unshift:开头插入
sort:数组排序
revserse:反转数组,排序默认升序
slice(start,end):切片数组,不影响原数组
splice(start, delCont, insert_content):从指定位置删除并插入元素
start-操作位置,delecont-删除元素个数,insert_content:插入数据
高阶函数方法:
型参是匿名函数:function(){}
forEach:遍历数组,没有返回值
filter:过滤,返回值是符合条件的元素组成的新数组,不会影响原数组
map:映射,返回符合条件的元素组成新的数组,不影响原数组
some:检查是否有符合条件的元素,存在就返回true,不存在返回false
every:检查,每一个元素是否符合条件,全部符合返回true
BOM操作
windows全局对象,windows上的浏览器
history:history对象可以实现js与浏览器历史记录进行交互,从而实现用户与浏览器
历史记录中的前进和后退
back:回退
forword:前进
go(n):n是正值前进,n是负值后退,0表示刷新页面
location:代表当前窗口的url,并且允许js进行修改浏览器的当url或者跳转到新的url
href:当前地址
protocol:协议
port:端口(默认433)
passname:虚拟路径
search:查询参数
hash:路由模式,锚点
reload:刷新
navigator:userAgent--浏览器身份
DOM操作(文档对象模型,通过js操作页面元素)
1.页面元素的获取
querySelector:匹配第一个
querySelectAll:找到所有,返回类似数组,可以使用下标获得,也可以遍历
target.querySelect:在target内部寻找
2.绑定事件:
鼠标点击事件:onclick
鼠标事件:onmouse:enter-鼠标划入,leave-鼠标划出,down-鼠标按下,up-鼠标抬起
表单元素:
onfocus:聚焦, onblur:失焦
oninput:输入内容发生改变, onkeyup:键盘抬起
3.获取、修改元素:
内容:
innerText:不考虑标签
innerHTML:可以识别标签
属性:
非类名:href、title、id、对象,属性名
类名:对象classList
add:添加类名
remove:删除类名
contains:是否包含类名(返回值为bool)
toggle:有就删除,没有创建
样式:
设置:都是设置级别最高的行内样式
获取:
行内样式可以直接通过style样式属性名获取
内部样式表和外部样式表的获取需要通过getComputerdStyle(obj)
4.相关元素:
parentElement:父节点
children:所有直接子节点-可以使用下标
nextElementSibling:下一个元素
previousElementSibling:上一个元素
5.创建与删除
createElement:创建元素
appendChild:插入元素
remove:删除元素