1.简介
网络开发唯一可选语言, 增加网页动态性与交互性,服务端开发, Nodejs,可以进行数据库文件读写
2.引入
html内部使用script标签,在script内部直接编写js
在外部js文件中编写,在script内部通过script的src属性引入外部js
3.变量声明
const
声明常量
必须赋值
不能更改
let
声明局部变量
只能声明一次
语句块外失效
没有赋值之前不能访问
var
声明全局变量
可以声明多次
自带变量提升效果
没有声明就能访问
4.数据类型
5种基本类型可以使用typeof
数字:Number
字符串:String
布尔值: Bool
空值:Null
使用typeof返回类型为object
清除内存
未定义:Undefined
声明一个变量,但是未赋值
2种复杂类型可以使用instanceof检测类型
数组
相当于Python中的列表,Array, 逻辑运算符为真
对象
相当于Python中的字典,Object,逻辑运算符为真
5.运算符
算数运算法:+ - * / %
赋值运算法:= += -= *= /= %=
自增:先返回再自加
a++
a--
先自加再返回
++a
--a
比较运算法:> >= < <= == !=
判等
==:只比较值
===:先比较值,再比较类型
逻辑运算法
&&
左侧为真,返回右侧
左侧为假,返回左侧
||
左侧为真,返回左侧
左侧为假,返回右侧
!
非假为真,非真为假;结果只有true与false
流程结构
顺序结构:从上向下依次执行
分支结构
if(){}
if(){}else{}
if(){}else if(){}else{}
循环结构
for
while
先判断再执行
doWhile
先执行再判断
6.函数
概念
function:定义关键字
函数名:小驼峰
形参:占位符,声明函数使用
实参:实际值,调用函数使用
返回值:只有一个
匿名函数
没有函数名,不能单独存在
使用
赋予一个变量
函数形参
对象的键
案例
setTimeOut
clear TimeOut
清除延迟
开启延迟,延迟1秒执行一次
setInterval
clear Interval
清除计时
开启计时,每隔1秒执行一次
递归函数
自己调用自己
递归效率低
7.数据常用操作
1.字符串
length:长度
遍历:下标,0,length-1
cahrAt:根据索引找字符
indexOf:根据字符返回索引,找不到返回-1
concat:字符串拼接
endsWith:结尾
startWith:开头
replace:替换
match:匹配返回对象
search:返回索引
slice:切片,不包含stop
split:切割,支持空字符切割
toLowerCase:转小写
toUpperCas:转大写
trim:剔除空格
2.数组
length:长度
遍历: 0,length-1
concat:数组连接,不影响原始数组
conclude:包含
indexOf:返回索引,找不到返回-1
join:将元素使用字符拼接
pop:删除末尾
push:末尾插入
shift:删除开头
unshift:开头插入
sort:排序,影响原始数组
reverse:逆序,影响原始数组
slice:切片,不影响原始数组
splice
start:操作位置
deleteCount:删除个数
items: 插入内容,可以不插入
高阶函数:形参是匿名函数,第一个参数是值,第二个参数是索引
forEach:遍历,没有返回值
every:每一个都是true结果才返回true
some:每一个都是false结果才返回false
find:返回索引, 只返回一个
filter: 过滤,返回符合条件的
map: 映射,一对一返回
3. 对象
键值对:类似Python字典,值可以是任意数据类型
Object keys(obj):获取obj的所有键
JSON.stringify:序列化
JSON.parse:反序列化
4.BOM
window:全局对象下的属性
history
back:回退
forward:前进
go(n)
正值 前进
负值 后退
0 刷新
location
href:当前地址
protocol:协议
port:端口
pathname:虚拟路径
search:查询参数
hash:路由模式,锚点
reload():刷新
navigator:浏览器身份userAgent
5. DOM:文档对象模型
通过js来操作页面元素
1.页面对象的获取
querySelector
找到匹配的第一个
querySelectorAll
找到所有
返回类似数组
可以使用下标获取单个
document.query*
搜索整个文档
target.query*
在target内部去找
2.绑定事件
鼠标事件
onclick
onmouse
enter
leave
down
up
move
表单元素
onfuces:聚焦
onblur:失焦
oninput:输入内容改变
onkeyup:键盘抬起
3.获取、修改
内容
innerText:不考虑标签
innerHTML:可以识别标签
属性
非类名
href
title
id
......
对象.属性名
类名
对象.classList
add:添加
remove:删除
contains:是否有
toggle:有就删,没有就添加
样式
设置
都是设置行内样式
.style.样式属性名=
获取
行内样式可以直接通过style.样式属性名获取
内部样式表以及外部样式表
需要通过getComputedStyle(obj).样式属性
相关元素
parentElement:父节点
children:所有直接子节点,可以使用下标
nextElementSibling:下一个相邻
previoiusElementSibling:上一个相邻
元素的创建于删除
createElement:创建元素
appendChild:将元素插入文档
remove:删除元素