javascript
1、概述
JavaScript是一门世界上最流行的脚本语言
Java和JavaScript没关系
ECMAScript可以理解为JavaScript的一个标准,版本到es6
2、基本
2.1、设定
2.2、引入
2.3、语法
严格区分大小写
其余基本和java相同
2.4、浏览器
元素
控制台
源代码
网络请求
web数据库
2.5、数据类型
number,js不区分小数和整数
字符串
-
正常字符以单引号,双引号包
-
转义字符 \
-
多行字符串编写``包,ESC下方的按键
-
模板字符串
-
字符串长度
-
字符串的不可变性
-
大小写转换
-
其他
Boolean
逻辑运算
比较运算符
一般使用===,缺陷
浮点数问题
精度损失,尽量避免使用浮点数进行运算
null和undefined
数组
存储数据,如何存取
-
长度
-
indexOf获取下标
-
slice()截取后返回新数组
-
push,pop作用在尾部
-
unshift,shift作用在头部
-
sort,reverse,concat
-
连接符join
对象
若干个键值对
动态删除属性
动态添加属性
判断属性是否在对象中
判断属性是否该对象私有
2.6、严格检查模式
局部变量建议以let定义
2.7、流程控制
if,while,for 和java一样
数组循环
for in
for of
forEach
2.8、Map和Set
ES6新特性
Map
类似python中的字典
遍历map
Set
无序不重复集合
遍历
3、函数
3.1、定义方式
3.2、参数问题
避免参数问题
无参数
多参数
rest获取除已定义参数之外的参数
ES6新特性
3.3、变量作用域
函数内部的变量和函数外部的变量区分,和java相同
js会把变量声明提前,但赋值不提前,规范为所有变量声明都放在函数头部,便于维护。
全局对象window
默认所有的全局变量都会绑定在window下
函数也在window下
Js实际上只有一个全局作用域,由内向外查找,最终为window
规范
不同的js文件使用相同的全局变量,会发生冲突
把自己的代码全部放入自己定义的唯一空间名字中,防止冲突
如上,jQuery库也如此,jQuery. 简化为 $()
局部作用域let
ES6 let关键字,解决局部作用域冲突
常量
ES6 之前,以大写人为规定,但仍可更改
ES6 引入const,规定常量不可更改
3.4、方法
定义
把函数放在对象内部
this
默认指向调用它的对象
apply控制this指向
3.5、内部对象
标准对象
Date
JSON
轻量级数据交换模式,有效提升网络传输效率,具有简洁清晰的层次结构,前后端交互
js中任何支持的类型都可以用JSON来表示
是字符串
Ajax
-
原生的js写法 xhr 异步请求
-
jQuery 封装
-
axios 请求
4、面向对象
定义class
本质是原型
继承
原型链
__proto__
在Object处套娃
5、操作BOM对象
Browser Object Model 浏览器对象模型
window
浏览器窗口
navigator
封装了浏览器的信息
大多数时候不会使用此对象,因为值存在安装文件中,会被人为修改
不建议使用此属性判断和编写代码
screen
屏幕信息
location
重要代表当前页面的URL信息
document
当前页面HTML DOM文档树
-
获取具体的文档树节点
-
获取cookie
-
history 浏览记录
6、操作DOM对象
Document Object Model
浏览器网页就是DOM树形结构
- 更新
- 遍历 .children
- 删除 先获取父节点,再删子节点,不能自己删自己 father.removechild
- 添加
获取和更新
删除
添加
创建并插入
7、操作表单
目的:提交信息
8、jQuery
JavaScript库
引入
CDN引入
文件引入
一般格式
选择器
$('p') //标签选择器
$('#id1') //id选择器
$('.class1') //class选择器
事件
鼠标事件,键盘事件,其他事件
Ajax
前后端通信
9、小技巧
看jQuery源码,看游戏源码
扒网站