笔记

147 阅读6分钟

1、BOM:Browser Object Model - 操作浏览器的一些对象

2、window - 扮演2个角色

1、全局对象 - 代替global
2、指代当前窗口本身

属性:
获取屏幕的大小:screen.width/height
获取浏览器的大小:window.outerWidth/outerHeight
获取浏览器的文档显示区域的大小:window.innerWidth/innerHeight

方法:
打开新窗口:var 新窗口=window.open("url","target","width=,height=,left=,top=");
关闭窗口:window/新窗口.close();
修改窗口的位置:新窗口.moveTo(x,y);
修改窗口的大小:新窗口.resizeTo(w,h);

定时器:
周期性:timer=setInterval(callback,延时);
clearInterval(timer);

一次性:timer=setTimeout(callback,延时);
clearTimeout(timer);

获取鼠标的位置:2步
1、事件处理函数中放上一个形参e -> 自动获得我们今年的超级重点event对象
2、相对于屏幕的坐标:e.screenX/Y
相对于文档显示区域的坐标:e.clientX/Y
相对于网页的坐标:e.pageX/Y

1、history:保存当前窗口的历史记录

前进:history.go(正数); 后退:history.go(负数); 刷新:history.go(0);

2、navigator:保存当前浏览器的基本信息

navigator.userAgent - 得到一句字符串,里面包含着你当前浏览器的名称和版本号,可以想办法获取那一部分

3、location:保存当前窗口正在打开url

常识:一个url由5个部分组成
协议名://域名:端口号/文件相对路径?请求消息(查询字符串:前端对后端说的话)

跳转:location="新url";
跳转后禁止后退:location.replace("新url");

4、event:

1、新的绑定事件的方式
if(elem.addEventListener){
elem.addEventListener("事件名",callback)
}else{
elem.attachEvent("on事件名",callback)
}

2、事件周期:3个
1、捕获阶段:由外向内记录要发生事件的元素
2、目标触发:真实触发事件的元素优先执行
3、冒泡触发:由内向外执行事件

3、获取事件对象event
兼容:e=event;

获得到了event可以做5个操作:
1、获取鼠标的坐标:e.page|screen|clientX/Y

2、阻止冒泡:
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;
}

3、利用冒泡(事件委托):把多个子元素的事件,统一的绑定到父元素身上
找到目标元素:
兼容:var target=e.srcElement - 代替this,事件处理函数可以换为箭头函数

4、阻止浏览器的默认行为
if(e.preventExtensions){
e.preventExtensions();
}else{
e.returnValue=false;
}

5、获取键盘的键码 - 游戏开发
e.keyCode;

MySQL基本内容:

访问:2种
1、图形化界面(更加简单更美观)方式
要求:同时打开mysql和apache
访问:127.0.0.1:端口号/phpmyadmin
localhost:端口号/phpmyadmin

2、✳✳✳✳✳✳命令行方式:SQL语句
如何进入数据库:
1、打开cmd

2、输入cmd的命令,进入到d:/xampp/mysql/bind
①、输入:盘符: 回车
②、输入:cd xampp/mysql/bind

3、登录:mysql -uroot -p 回车不要加分号
4、退出:exit
5、SQL语句:关系型数据库SQL语句互通

1、数据库:
查看数据库:SHOW DATABASES;

创建数据库:CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET utf8;

切换数据库:USE 数据库名称;

2、数据表:如何创建数据表

数据库的数据类型: 数值:Int - 整型 Float/Double - 浮点型 Decimal - 精确值

字符串: Char - 长度固定的 Varchar - 长度可变的

日期: Date - YYYY/MM/DD Datetime - YYYY/MM/DD hh:mm:ss Timestamp - 时间戳(标识:唯一不重复 - id也可以)

创建数据表: CREATE TABLE 表名( 字段名 数据类型, ... );

举例:CREATE TABLE user( id int PRIMARY KEY AUTO_INCREMENT, name varchar(30), pwd varchar(6), email varchar(30), vip varchar(1) );

PRIMARY KEY:主键约束:绝对不会重复 AUTO_INCREMENT:主键自增:每次都会+1

3、✳✳✳✳✳数据/记录:

增: INSERT INTO 表名 VALUES(字段值,...); 举例:INSERT INTO USER VALUES(0,"张颜","123456","zy@qq.com","0");

删: DELETE FROM 表名 WHERE id=几; - 一旦删除数据就不回再回来了

改: UPDATE 表名 SET 字段名=字段值,... WHERE id=几;

查: 3种语法: SELECT * FROM 表名; SELECT 字段名,字段名,... FROM 表名; SELECT * FROM 表名 WHERE id=几;

1、PHP:最简单的一门语言

爆火架构:LAMP
php文件,后缀.php

1、✳✳✳✳✳如何运行php

打开apache,将你的项目/文件夹放到htdocs里面,在用浏览器输入127.0.0.1,打开你需要运行的文件

特殊:其实php文件也支持前端代码(HTML+CSS+JS)和php代码,以后我们上网的时候,发现网页的后缀,不是.html也不必惊讶

任何一门语言,万变不离其宗,js(客户端:特效)和php(服务器端:沟通)都是一个脚本语言

2、✳✳✳PHP的语法基础

1、输出方式:
1、✳echo(想要输出的内容); 或者 echo 想要输出的内容;
echo只能输出4种标准类型,不能输出别的类型
2、var_dump(想要输出的内容)
var_dump可以输出一切数据类型,显示很详细,正是因为显示的太过详细,其实要不得,php输出在页面上的东西,某一天都会被前端用ajax拿走拿到前端去

2、变量和常量:
1、✳变量:值可以变化的数据
语法:$变量名=值;
注意:使用时$不能省略

2、常量:值一旦创建了,不允许修改
语法:const 常量名=值;

3、✳数据类型:
四种标准/基本/原始类型:
整型:Int
浮点型:Float/Double
布尔:Boolean
字符串:String - 有区别
单引号 - 只能放入纯文本

双引号 - 支持放入变量 - 类似js模板字符串
echo "{name}今年{age}岁,喜欢{$hobby}";

两种复合类型:
Array - 数组:保存多个相关数据
创建:
1、直接量:arr=[1,...]索引数组<br>2、内置对象:arr=[值1,...] - 索引数组<br> 2、内置对象:arr=array( - hash数组:其实就是对象
key=>value,
...
)

访问:$数组名[下标]

遍历:循环

Object - 面向对象,不需要

两种特殊类型:
Resource - 资源类型
Null - 空,释放内存
"" - 有,值为空
null- 不存在

4、运算符:几乎和js一致,除了字符串拼接.,意味着php的API调用方法绝对不可能用.

5、分支:完全一样!if分支 switch分支 三目 都支持

6、循环:完全一样!

7、函数:完全一样!

8、所有的API:理论上来说完全一样,但是操作却不同,不需要学习,也不需要记忆,面向百度开发

3、全栈开发:前端=>PHP<=>数据库

1、前端->后端
前端需要发起请求
1、表单请求/提交
注意:
-----①、input必须添加name属性,甚至有的input(radio、checkbox、select&option)可能还要添加value
-----②、form表单必须添加action="服务器端文件的路径";
-----③、method到底是用get还是post,和后端进行沟通/看开发文档
get->得到,只要跟安全性不挂钩的时候,大小有限制2kb:搜索框(把东西拿出来)
post->发送,只要跟安全性挂钩的时候,优先使用,举例:登录/注册(把东西放进去)

2、后端 需要接收住 前端传来的 请求消息
语法:变量=变量=_GET/POST/REQUEST["input的name的值"]

REQUEST - 请求:不管前端是GET还是POST,都能接住

2、后端<->数据库:php自带操作mysql的API,只需要学习4.5句话完毕
1、创建和数据库的连接对象
$conn=mysqli_connect("hostname","username","userpwd","dbname");

我们班的固定:
$conn=mysqli_connect("127.0.0.1","root","","h52202");

1.5、为此数据库设置中文编码
mysqli_query($conn,"SET NAMES utf8");

2、创建SQL语句:你要干什么
$sql="INSERT/UPDATE/DELETE/SELECT";

3、数据库要执行SQL语句
result=mysqliquery(result=mysqli_query(conn,sql);<br>//增删改:true>执行成功false>执行失败<br>//查:返回的是一个我们都不会认识的结果集对象<br>解决:php提供了一套方法while((sql);<br> //增删改:true->执行成功 false->执行失败<br> //查:返回的是一个我们都不会认识的结果集对象<br> 解决:php提供了一套方法 while((row=mysqli_fetch_row|assoc|array(result))!=null){<br> var_dump(row);//拿到了数据要干什么?
echo "";
}

4、断开和数据库的连接
mysqli_close($conn);