震惊!js知识点竟是......(五)

174 阅读5分钟

一、

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; - 代替this,有时候需要判断一下target是什么标签或者是什么class
			}

		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部分
		1localStorage:永久存在 - 也可以自己设定时间
		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 想要输出的东西; - 只能输出4中标准类型
	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;//接住服务器端响应的消息:php就放在页面上输出的内容就是响应消息
		}
	}
            

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":[],...}'

2PHP如何将数据变为JSON字符串:
	echo JSON_encode($arr);
	var jsonTxt=JSON.stringify(jsonObj);//node.js以后你想要穿衣服就靠它

3、前端依然使用ajax获取响应数据:
	xhr.responseText;//json字符串

   把json字符串变为json对象 - 脱衣服:2eval("("+xhr.responseText+")");
       *JSON.parse(xhr.responseText);