一、
1、history:当前窗口的历史记录:
前进:history.go(正数)
后退:history.go(负数)
刷新:history.go(0)
2、location:
常识:一个url的组成部分
协议://域名:端口号/文件相对路径?查询字符串
属性:location直接输出就能看到各种属性,分别能够得到url的每一个部分
跳转:location="url"
跳转后禁止后退:location.replace("新url")
3、navigator:navigator.userAgent;
获取到当前浏览器的基本信息,截取出需要的部分 - 本意是为不同的浏览器可以执行不同的操作,但是前辈已经提供好了兼容的方法
4、event:事件对象
1、新的绑定事件
if(elem.addEventListener){
elem.addEventListener("事件名",callback)
}else{
elem.attachEvent("on事件名",callback)
}
2、事件的生命周期:
3个:1、捕获阶段 2、目标触发 3、冒泡触发
3、获取到事件对象event:
event
获取到e过后可以干什么?
1、获取鼠标的位置
e.screen/client/pageX|Y
2、阻止冒泡
if(e.stopPropagation){
e.stopPropagation
}else{
e.cancelBubble=true
}
3、事件委托:优化:提升性能,事件统一的绑定在父元素上
父.on事件名=function()=>{
//问题:this->父?
//解决:目标元素target:e.srcElement
}
4、阻止浏览器的默认行为:
if(e.preventDefault){
e.preventDefault()
}else{
e.returnValue=false
}
5、获取键盘的键码:e.keyCode - 不需要记忆,直接输出看看你点的这个按键的键码是多少
5、客户端的存储技术:
作用:跳转页面还能保存住数据
cookie:被淘汰了:缺点:1、大小有限2kb 2、使用非常的麻烦繁琐
webStorage:优点:1、大小有限8mb 2、使用非常的简单
缺点:1、老IE不支持
分为:2部分
1、localStorage:永久存在 - 也可以自己设定时间
2、sessionStorage:浏览器一旦关闭数据就会死亡
操作:
1、添加数据:xxxStorage.setItem("属性名",值) === localStorage.属性名=值
2、获取数据:xxxStorage.getItem("属性名") === localStorage.属性名
3、删除数据:xxxStorage.removeItem("属性名");
4、清空数据:xxxStorage.clear();
1、SQL语句:
1、创建数据库:
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET utf8;
2、切换数据库:
USE 数据库名
3、查看数据库:
SHOW DATABASES
4、创建数据表:
CREATE TABLE 表名(
字段名 数据类型,
...
);
主键约束:PRIMARY KEY
主键自增:AUTO_INCREMENT
5、数据:
增:INSERT INTO 表名 VALUES(字段值,...);
删:DELETE FROM 表名 WHERE id=几;
改:UPDATE 表名 SET 字段名=字段值,... WHERE id=几;
查:SELECT * FROM 表名;
SELECT * FROM 表名 WHERE id=几;
SELECT name,pwd FROM 表名 WHERE id=几;
1、PHP语法基础
1、输出方式:
echo 想要输出的东西
var_dump(想要输出的东西)
2、变量和常量:
$变量名=值;//使用的时候也不能省略$
const 常量名=值;
3、数据类型:
4种标准类型:Int、Float/Double、boolean、String(双引号可以识别变量)
2种复合类型:
array、object
$arr=[]
$arr=array(
key=>value,
...
)
2种特殊类型:null、resource
4、运算符:
拼接字符串.操作,php的api绝对不可能.
5、
分支、循环、函数、api没有区别
2、全栈:
前端->后端:
前端发起请求:表单
后端要接住前端发来的请求消息:
$变量=$_GET/POST/REQUEST["input的name的值"];
后端<->数据库:
1、创建和数据库的连接
$conn=mysqli_connect("127.0.0.1","root","","h52107")
1.5、设置传输时的中文编码
mysqli_query($conn,"SET NAMES utf8")
2、创建SQL语句
$sql="INSERT/DELETE/UPDATE/SELECT"
3、执行操作
$rs=mysqli_query($conn,$sql)
//增删改:结果都是一个布尔值,true代表执行成功,false则失败
//查:结果是一个我们都不认识的结果集,解决:
while(($row=mysqli_fetch_row/assoc($rs))!=null){
$row
}
4、断开和数据库的连接
mysqli_close($conn)
1、原生的ajax:
异步交互:客户端向服务器端发起请求直到服务器响应的全过程,用户是不必等待的 - 技术/代码:定时器、ajax
同步交互:客户端向服务器端发起请求直到服务器响应的全过程,用户是需要等待的 - 技术/代码:表单提交、a标签跳转
不严格定义:页面不会完整刷新,局部改变
2、如何使用:
1、创建xhr核心对象
var xhr=new XMLHttpRequest()
2、建立和服务器端的连接
xhr.open("method","url");
3、向服务器端发起请求消息
GET:xhr.open("get","url?key=value&...");
xhr.send(null);
POST:xhr.open("POST","url");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("key=value&...");
4、绑定状态监听事件:
xhr.onreadystatechange=()=>{
if(xhr.readyState==4&&xhr.status==200){
xhr.responseText
}
}
1、XML
1、面试题:HTML、XHTML、DHTML、XML分别是什么?
HTML - 网页
XHTML - 更严格的网页
DHTML - 动态特效的网页:并不是新技术、新概念,现有技术的整合统称:HTML+CSS+JS(DOM) - 离线网页也就有动态特效
XML - 配置文件 | 数据格式
2、如何使用xml,其实就是一个后缀.xml的文件
1、创建.xml文件
2、必须写上声明标签:<?xml version="1.0" encoding="utf-8"?>
version - 版本:目前的版本只有1.0 和 1.1 但1.1升级并不理想,没有人使用,以后都不必在学了,已经淘汰了
encoding - 编码格式
3、必写写上一个根标签,而且只能写一个根标签(双标签),没有任何的预定义标签,所有的标签全都自定义
<root></root>
4、里面你随意。想放什么标签就放什么标签
开发中:正常来说后端会想办法将数据库的数据整理为一个xml格式
前端:依然使用ajax去获取xml:
1、url 写 "xx.xml";
2、xhr.responseXML 获取响应的xml文件,跟DOM差不多
3、可以使用【核心DOM】去找到自己需要的部分
2、*****JSON:
javascript Object Notation:js对象表示法,本身就是js的一部分
作用:数据格式 类似于 XML
好处:比XML 更简洁、更快、更容易解析 - 一个优秀的数据格式能极大的提升程序员的开发效率
1、哪些属于JSON字符串:后端把数据库的数据取出来整理为一个JSON字符串:
1、'[1,2,3,4]'
2、'{"key":value,...}'
3、'[{},{},{},{}]'
4、'{"names":[],"ages":[],...}'
2、PHP如何将数据变为JSON字符串:
echo JSON_encode($arr);
var jsonTxt=JSON.stringify(jsonObj);
3、前端依然使用ajax获取响应数据:
xhr.responseText;
把json字符串变为json对象 - 脱衣服:2种
eval("("+xhr.responseText+")");
*JSON.parse(xhr.responseText);