对象:对象object是一些相关变量的方法的软件集,经常用于模仿现实世界中我们身边的一些对象
对象特征:属性,方法
JavaScript中所有事物都是对象:字符串、数值、数组、函数……
此外,JavaScript允许自定义对象
——————
对象的属性和方法
JavaScript提供多个内建对象,如String、Data、Array等等
对象只是带有属性和方法的特殊数据类型
一切的对象都可以加属性和方法
——————
创建JavaScript对象
*由对象字面量创建
*由内建对象object创建
*由构造函数构造出来然后创建新的对象实例
*有函数Object.create()创建(ES5)
——————
原型:扩展系统对象的功能
优点:使用prototype属性扩展对象,可以大量减少对象的使用的内存空间
*prototype和__proto__的概念
prototype是构造函数的一个专有属性,这个属性是一个指针,指向一个对象
__proto__是一个对象拥有的内置属性,是JS内部使用寻找原型链的属性
原型链的形成真正是靠__proto__而非prototype
——————
继承:可以将一个对象扩展成为其他对象—不但可以使用对象作为原型建立其他对象,还可以扩展对象的属性和方法
模拟继承之call、apply和bind方法
——————
构造函数:名为构造函数,实际上并不能够叫做函数,而是一种函数的模型
在内置的构造函数上添加新的方法
Arry.prototype.名=值
构造函数定义函数的优劣:
优点:可以动态创建和编译一个函数,不会把开发人员限制在function
语句编译的函数结构体中/能够把函数当做表达式来使用,而不是当做一个结构固定的语句/使用更加灵活
缺点:每次调用时,都要进行编译,如果再循环结构中或者经常调用函数时,会影响效率
——————
delete方法:删除对象属性
instanceof方法:检测某个对象是不是另一个对象的实例
hasOwnProperty方法:是用来判断一个对象是否有你给出的名称的属性或方法(true/false)
isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中(true/false)
getter获取数值/setter设置数值
for/in循环可以在循环体中遍历对象中的所有可枚举的属性,对象继承的内置方法是不可枚举的,但在代码中给对象添加的属性都是可枚举的
Object.defineProperty()可以设置属性的特性
Object.defineProperties()可以同时修改多个属性
————————————————————————
PHP
Dos指令
打开窗口:window+r输入cmd回车进入终端/在对应的文件下,按住shift+右击鼠标,找到“在此处打开命令窗口”
查看网络信息指令:ipconfig
修改终端背景和字体颜色的指令color
创建文件夹:md
cls清除当前终端
ctrl+c终止当前程序
cd进入文件夹指令
cd..返回上一级目录
dir查看当前目录下的文件和文件夹
del删除文件
rd删除文件夹
tab检索对应文件
……
——————
Mysql:是一种关系型数据库,就是以表格的形式存储数据
查看数据库指令 show databases
创建数据库:create database
进入数据库:use
删除数据库:drop database
进入数据库之后 查看数据表show table
——————
数据的类型:数值、日期、字符串
数值 整型和浮点型 整型 int float
int存放十位以内的数字
varchar名字
text小说
——————
PHP语法只能写在PHP文件中
PHP代码必须放在<?php 之间?>
——————
PHP的输出语句是echo或print
在PHP中使用$来定义变量
——————
变量作用域
分全局global和私有local,静态static,parameter参数变量
——————
作用域链
函数内部的变量才使用时,首先查找对应的作用域有没有这个变量,有就看在使用前赋值还是使用后赋值,使用前赋值,变量就是赋的那个值,使用后赋值就是undefined。如果当前作用域没有就像他的父级作用域查找,有酒使用,没有就继续向上查找直到window。如果还没就报xxx is not defined。这种查找机制叫作用域链
——————
Js的数据类型
基本数据类型 string number boolean undefined null
复合数据类型 array object function
变量是什么数据类型 跟后面的值有关。
基本数据类型 就是简单的直接赋值
Var a=45; 就是将45赋值给a
复合数据类型 是将内存地址赋值给变量
——————
运算
|| 遇到一个不为0的数 就终止且返回这个数
&& 遇到第一个为0的数就终止,返回0,如果没有0就一直运算下去,且返回最后一个数
——————
超级全局变量
不受作用域限制 函数内函数外都可以使用
$GLOBALS 所有全局的东西都存在这里
$_SERVER 所有服务器方面的信息存在这里
$_REQUEST
$_POST 客户端post提交的数据都存在这里
$_GET 客户端get提交的数据都存在这里
$_COOKIE
$_SESSION 他们都是数组
get 提交 在网络地址栏 post 在http协议的请求体中
——————
循环语句
while/do{}while()(先执行一次然后再去判断,即使条件不满足,也会执行一次)
——————
函数
通过关键字 function 来定义函数
函数带参数调用,首先献给参数赋值,然后再去处理变量。
魔术常量
Php赋予他们特殊的意义
1.__LINE__; 返回当前代码位于php文件中第多少行
2.__FILE__;返回当前文件所处的绝对位置带文件名
3.__DIR__; 返回当前文件所在的目录
4.__FUNCTION__; 返回所在函数被定义的名字
5.__CLASS__;返回当前所在的类名。
6.__TRAIT__;
7.__METHOD__;返回方法名
8.__NAMESPACE__;返回命名空间的名字;
析够函数
我们new 实例的时候其实是调用构造函数,函数调用的时候会开辟内存空间,调用完之后会自动销毁。销毁前会自动调用 __destruct 这个析构方法
——————
面向对象的三大特征
将数据和操作数据的方法捆绑在一起,对外隐藏,只提供可以操作的接口。
Php是弱类型语言,没有多态这个概念,有重载。重载:子类和父类的方法名相同,子类会覆盖掉父类的方法,这就叫重载。
多态是强类型语言才有的,
——————
表单
前端提交数据可以通过表单提交
主要有八种提交方式
Get 通过http中的网络地址
Post 通过http中的请求体 可加密
options
Put
Delete
Head
Trace
Connect
对于get提交 php使用$_GET[]接受 对于post提交 php使用$_POET[]接收。
——————
继承
原型继承 将父类的实例对象赋值给子类的原型;私有的公有的都继承为公有的
call继承 call方法是函数/类天生自带的一个方法。将父类私有的继承为子类私有的
冒充对象继承 将父类私有的和公有的都继承为子类私有的。 使用for in
混合继承 私有的继承为私有的 私有的和公有的再次继承为公有的。
Call继承和原型继承的结合
组合继承 私有继承为私有 公有继承为公有
私有继承私有 借助call 公有继承为公有 (不能是原型赋值给原型。因为原型是对象,是复合数据类型,是地址赋值给了前者,导致二者指向同一个原型。得克隆)
中间类继承
Call和apply的区别
——————
对象克隆
对象克隆是通过clone关键字实现的,即:clone对象
克隆出来的对象与原来的对象是两个内存地址,因此是两个不同的对象
随想在实例化的时候会自动调用存在的构造方法_从struct()。同样的,在累的内部,PHP允许定义一个_clone()的方法,在对象被克隆后,新克隆出来的对象会被自动调用
如果不允许对象被克隆,可以将_clone()方法私有化
——————
PHP没有多态
原文:https://www.cnblogs.com/liyanzhe/p/11360340.html