php实用工作手册.docx_第1页
php实用工作手册.docx_第2页
php实用工作手册.docx_第3页
php实用工作手册.docx_第4页
php实用工作手册.docx_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

函数Unset():销毁指定的变量;Is_数据类型(): 数据类型验证;Gettype():获取数据类型;Settype():设置数据类型 会强制转换数据本身;Strlen():字符串长度;Substr(): 字符串截取 用法:Substr(要截取的字符串,截取的起始位置,截取长度);Strrev(): 字符串反转(中文不能反);Strpos(): position位置,获取某个字符串在目标字符串中的位置(从左边开始);Strrpos(): 从右边开始;Strchr(): 字符串截取,不同于substr的是直接截取到最后(从左边开始);Strrchr():(获取文件后缀名)从右边开始;Trim():默认的取出字符串两边的空格, 也可以去除两边的指定字符串;Str_repeat($str , 重复次数): 重复输出某个数据;Addslashes():在预定义字符前添加反斜杠,包括 、 “ null (可用于登录验证时 or 1# );Chr(): 函数从指定的 ASCII 值返回字符;Explode(): 函数把字符串分割为数组;Implode(): 函数把数组元素组合为一个字符串;md5(): 字符串加密,可用于设置密码;ord():返回字符串第一个字符的 ASCII 值;str_replace():用一个字符串替换字符串中的另一些字符str_replace(find,replace,string,count);str_shuffle():随机地打乱字符串中的所有字符;str_split():把字符串分割到数组中 str_split(string,length) ;strcasecmp():比较两个字符串,相等返回0,str1str2返回 保存值的变量);Each(): 从一个数组中取出当前数组指针所指向的元素List(): 是一种批量给变量赋值 List(变量1,变量2.) = 数组;Key(): 获取当前指针所在位置的元素下标;Current(): 获取当前指针所在位置的元素值;Next(): 指针下移,并返回下一个元素的值;Prev(): 指针上移,并返回上一个元素的值;Next或者prev只能按照自己的方向移动,但是如果指针已经移出数组: next或者prev都没有办法移回来: 只能使用重置(reset和end);end (): 将指针移到最后一个元素, 并返回最后一个元素的值;Reset(): 将指针移动到首位;array_keys(): 获取一个数组中所有的元素下标,返回一个索引数组;array_values(): 获取一个数组中所有的元素值,返回一个索引数组;Array_shift(): 从数组的”头部”取出元素,数组会变短(数组左边);Array_unshift(); 从数组”头部”添加元素, 返回数组的长度;Array_push(): 从数组的”尾部”添加元素(右边);Array_pop(): 从数组的”尾部”弹出元素;Range(): 产生一个指定范围内的数组,按照ASCII码表(做验证码);array_merge(): 合并数组,而且会重新更新下标;array_rand(): 取出指定下标;array_combine():函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值;array_count_values():函数用于统计数组中所有值出现的次数;array_diff():返回两个数组的差集数组。array_diff_assoc():返回两个数组的差集数组,和 array_diff() 函数 不同,本函数要求键名和键值都进行比较。返回的数组中键名保持不变;array_diff_key():返回一个数组,该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键array_flip():返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。如果原数组中的值的数据类型不是字符串或整数,函数将报错。array_merge_recursive():与 array_merge() 函数 一样,将一个或多个数组的元素的合并起来,一个数组中的值附加在前一个数组的后面。并返回作为结果的数组。array_multisort():对多个数组或多维数组进行排序。 array_multisort(array1,sorting order,sorting type,array2,array3.);array_search():在数组中搜索给定的值,如果成功则返回相应的键名。array_unique():删除数组中重复的值。asort():对数组进行排序并保持索引关系。in_array():检查数组中是否存在指定的值。ksort():对数组按照键名排序。sort():对数组排序。数据传送关于复选框的传送数据方法:1. 给checkbox的name属性增加array;2. 在表中增加一个字段: 存放所有的爱好: 爱好通过PHP数组转换成带有分隔符的字符串(用implode和explode)3. 用户查看: 依然用复选框查看,给checkbox增加属性: checked = checked (1).增加一个用户显示checkbox数据的显示界面: html文件 (2). 使用PHP来判断用户的哪些被选中: 选中的数据增加checked=checked属性 (3). 修改逻辑: 有被选中的才有属性,没有选中的就没有属性: 当前html肯定是用于被PHP脚本包含, 所以肯定也是使用PHP中准备的爱好信息: PHP中的爱好是一个数组: 判断当前的爱好选项是否在数组中存在; in_array() (4). 在需要显示数据的PHP脚本中引入对应的HTML显示文件.文件上传1. 服务器允许用户上传文件: apache不能处理文件: PHP才能处理;2. 文件上传表单域: 需要在表单中增加一个文件上传的属性: enctype=”multipart/form-data”;3. (1). PHP中接收文件上传信息: 由$_FILES超全局预定义变量实现 (2). PHP没有处理,就会被系统回收: 系统在PHP脚本执行结束,php没有处理,操作系统自动回收: 如何让脚本执行周期变长? Sleep(10): 休息10秒 (3). Move_uploaded_file(临时文件路径, 目标路径);4. (1).判断上传文件:is_array($file) count($file)=5 (2).error信息,有错会返回相应的数字 手册有 6种; (3).判断文件类型是否合法in_array($filetype,$allow) (4).判断上传文件大小:$filesize$maxsize (5)对文件重命名:date(ymdhis) mt_rand() strrchar() ;(6)移到其他目录路径操作1. opendir(路径) 获得的是一个资源;2. readdir(路径资源): 资源操作是指针操作, 读取一个之后就会下移 获得的是字符串;3. 遍历读取整个文件夹: readdir + 循环 while($file = readdir($opendir));4. rewinddir(路径资源);重置指针;closedir(路径资源)关闭资源;5. file_exists: 判断一个文件是否存在 is_dir: 判断路径是否有效 is_file: 判断文件是否有效6. scandir(有效路径), 返回一个数组,数组中包含所有当前路径下的文件名7. file(文件路径) 将一个文件中的所有内容读取出来,然后一行一行的读, 返回一个数组(一行数据就是一个数组元素);8. file_put_contents(目标文件,要写入的内容,写入方式) 将要写入的数据直接写入到文件 默认的永远是覆盖数据 FILE_APPEND代表追加 不会覆盖;9. open(文件路径,操作模式): 在一开始打开资源的时候,就必须指定打开是为了干什么: 读还是写10. Fgetc: c代表character, 一次读取一个字节 Fgets: s代表string, 一次读取指定长度的字符串或者一行(最多一行) Fgets最多读取一行 Fread: 获取指定长度的字符串关闭资源: fclose(打开资源)11. 写操作: fputs/fwrite(资源,要写的数据);12. 文件下载:A标签下载:刚好浏览器碰到了一个不能识别的文件: 浏览器解析不了, 保存。不安全: 会严格暴露文件的位置,文件的真实路径,名字等13. Php下载:(1) PHP要实现下载需要解决一个问题: 浏览器不要解析Header(Content-type:application/octet-stream); (2) 解决文件名字问题: 服务器要告诉浏览器,建议用什么名字保存文件. Header(Content-disposition:attachment;filename=建议的名字)14. 递归文件夹:自己调用自己;15. file_get_contents(路径);获取文件内容;MYSQL数据库1. Create database 【数据库名字】 set 【字符集】2. Show databases / show databases like 【】3. Show create database 【数据库名字】4. Alter database 【数据库名字】charset 【字符集】5. Drop database 【数据库名字】6. Create table 【table名字】(字段名字,字段类型,)charset 【字符集】7. Use 【数据库名字】8. Show tables / show tables like 【table名字】9. Show create table 【table名字】10. Desc 【table名字】11. Rename table 【old name】to【new name】12. Alter table 【table名字】charset 【字符集】13. Alter table 【table名字】add 【字段名,字段类型】【位置】14. Alter table 【table名字】modify 【字段名,字段类型】【位置】15. Alter table【table名字】change 【old字段名】【new 字段名,字段类型】16. Alter table drop 【字段名】17. Drop table 【table名字】18. Insert into 【table名字】values( )19. Select * from 【table名字】20. Update【table名字】set【字段名】= 值21. Delete from 【table名字】where 条件22. Alter table【table名字】add primary key【字段名】23. Alter table【table名字】drop primary key24. Alter table【table名字】auto_increment = 值25. 主键冲突: 更新操作:Insert into 表名(字段列表:包含主键) values(值列表) on duplicate key update 字段 = 新值;26. 主键冲突: 替换:Replace into 表名 (字段列表:包含主键) values(值列表)27. 蠕虫复制:(1) Create table 表名 like 数据库.表名 (2) Insert into 表名(字段列表) select 字段列表/* from 数据表名28. 更新数据:Update 表名 set 字段 = 值 where条件 limit 更新数量29. 删除数据:Delete from 表名 where条件 limit 数量30. 恢复出厂设置:Truncate 表名31. 查询数据完整语法:Select select选项 字段列表字段别名/* from 数据源 where条件子句 group by子句 having子句 order by子句 limit 子句32. 多表数据源: select* from 表名1,表名2.33. 子查询:Select * from (select 语句) as 表名34. Where原理: where是唯一一个直接从磁盘获取数据的时候就开始判断的条件: 从磁盘取出一条记录, 开始进行where判断: 判断的结果如果成立保存到内存;如果失败直接放弃.35. group by 字段名 | Group by 字段 asc|desc; | group_concat(字段)36. Count(): 统计分组后的记录数: 每一组有多少记录Max():统计每组中最大的值Min(): 统计最小值Avg(): 统计平均值Sum(): 统计和37. 回溯统计: with rollup 一般在句尾加38. Having能做where能做的几乎所有事情, 但是where却不能做having能做的很多事情39. Order by 字段名 asc|desc; - asc是升序(默认的),desc是降序40. Limit($offset,$len) Offset: offset = (页码 - 1) * 每页显示量41. 内连接:select * from 【table一号】inner join【table二号】on 连接条件42. 外连接:左表 left/right join 右表 on 左表.字段 = 右表.字段43. 创建表的时候增加外键: 在所有的表字段之后,使用foreign key(外键字段) references 外部表(主键字段)44. 在新增表之后增加外键: Alter table 表名 add constraint 外键名字 foreign key(外键字段) references 父表(主键字段);45. Alter table 表名 drop foreign key 外键名;46. Select 语句1 (order by需加括号,加limit)Union union选项Select语句2.47. Create view 视图名字 as select语句; - select语句可以是普通查询;48. Alter view 视图名字 as 新的select语句;49. Drop view 视图名字;50. 部分数据保存到外部文件:Select */字段列表 into outfile 文件所在路径 from 数据源;51. 高级备份:自己制定字段和行的处理方式:Select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源; Fields: 字段处理Enclosed by: 字段使用什么内容包裹, 默认是,空字符串Terminated by: 字段以什么结束, 默认是”t”, tab键Escaped by: 特殊符号用什么方式处理,默认是, 使用反斜杠转义Lines: 行处理Starting by: 每行以什么开始, 默认是,空字符串Terminated by: 每行以什么结束,默认是”rn”,换行符52. 数据还原:Load data infile 文件所在路径 into table 表名(字段列表) fields字段处理 lines 行处理;53. Mysqldump连接认证: Mysqldump/mysqldump.exe -hPup 数据库名字 数据表名字1 数据表名字2. 外部文件目录(建议使用.sql)54. Mysqldump数据还原:Mysql.exe/mysql -hPup 数据库名字 备份文件目录55. Sql指令还原: Source 备份文件所在路径(浪费空间)56. 开启事务:Start transaction; 事务操作完之后commit;对应数据库才会发生改变 rollback是清空日志不会改变;57. 设置事务回滚点: savepoint 回滚点名字 返回:rollback to 回滚点名字;58. 查看系统变量:select 变量名;会话级别修改:set 变量名 = 值; 全局修改:set global 变量名 = 值;自定义:Set 变量名 = 值; 一般使用 :=59. Delimiter 自定义符号: Create trigger 触发器名字 触发时间 事件类型 on 表名 for each rowBegin- 代表左大括号: 开始- 里面就是触发器的内容: 每行内容都必须使用语句结束符: 分号End- 代表右带括号: 结束- 语句结束符自定义符号- 将临时修改修正过来Delimiter ;60. Show triggers like pattern;61. Drop trigger 触发器名字62. old.字段名 / new.字段名(new代表的是假设发生之后的结果)63.If 条件判断 then- 满足条件要执行的代码;Else- 不满足条件要执行的代码;End if;64. While 条件判断 do- 满足条件要执行的代码- 变更循环条件End while65. 使用方式: ITrate/leave 循环名字;- 定义循环名字循环名字:while 条件 do- 循环体- 循环控制Leave/iterate 循环名字;End while;66. Create function 函数名(形参列表) returns 数据类型 - 规定要返回的数据类型Begin- 函数体- 返回值: return 类型(指定数据类型);End67. 存储过程是一种没有返回值的函数Create procedure 过程名字(参数列表)Begin- 过程体End补充:由于360更新补丁 导致mysql没有开机启动服务 所以要先在cmd启动mysql服务:net start mysql 再mysql uroot p1234;PHP环境搭建1. apache正常安装2. 安装php(1).在apche安装文件下的conf的httpd.conf 加载php模块:LoadModule php5_module “路径:PHP为apache提供的接口dll” (2).同样在httpd.conf下让apache分配工作给php :AddType application/x-httpd-php .php(3).php文件夹下的php.ini-production是php的配置文件,不要直接使用。先复制一份名字改成php.ini 并且增加时区:date.timezone = PRC(4).在httpd.conf下加载php.ini: PHPIniDir “php.ini所在的文件夹”(5)在php.ini中开启对mysql的扩展:extension=php_mysql.dll 告诉系统mysql扩展文件在哪里:extension_dir=”php文件夹下/ext”3. mysql安装:注意点(1).进入自定义安装后:mysql server安装目录 和save data file 安装目录 需注意;(2).detailed configuration 详细安装 = 选择这个(3).developer machine 开发者机器 = 选择这个(4).multifunctional database 多功能数据库 = 选择这个(5).manuel setting手动设置 = 选择这个(6)勾选 add firewall(7)手动设置字符集 utf8(8).include bin directory in windows path 勾选4.要使用虚拟主机 要在httpd.conf里面加载引入虚拟主机文件ECSHOP主要内容1. 创建好文件夹之后 在公共文件中用str_replace、define等函数定义常用文件夹;2. 跳转函数: header(“refresh:$time;url=$url”);3. 数据库连接:mysql_connect(localhost:3306,root,1234); 4. 检查数据库语法错误 mysql_error() mysql_errno()5. Cookie与session :cookie存在浏览器,cookie不能删除但是可以修改,cookie可以设置保存时间; session 存在服务器 ;session是会话级别关闭浏览器之后就丢失sessionid;session是基于cookie;sessionid相当于钥匙,默认关闭浏览器sessionid就消失;6. 把登录成功信息存到session 判断用户有没有选择保存cookie信息 当用户关闭浏览器时,sessionid会失效,所以还要判断cookie存的id 如果存在就再存进session中;不存在则重新登录;XML1.xml格式要求相对html严格,关闭标签、大小写区分、正确嵌套、必须有根元素、属性值须加引号、实体引用代替特殊字符2.xml命名规则 不以数字或者标点符号开始 不能以xml开始 不能包含空格 避免以- . : 命名3.xml中尽量避免使用属性 多用子元素 因为属性无法包含多重值 无法描述树结构 不易扩展 难维护4.元数据应当存储为属性 而数据本身应当存储为元素5.6. 7. 8.(#PCDATA)不能有子元素 EMPTY 只能有属性 ANY 该类型可以包含任何在DTD定义的元素内容,常用于根元素 (子元素) :定义子元素只能出现一次 9. 10. #REQUIRED 必填 #IMPLIED 可选 #FIXED 固定值 值 默认值11. 12. DOMDocument:_construct ( string $version , string $encoding /new Document对象13. load ( string $filename) /读取文件14. getElementsByTagName ( string name ) /获得串 想要的节点15. item ( int $index ) /获得相应节点16. nodeValue 节点值17. DOMElement DOMDocument:createElement ( string $name , string $value ) /创建节点DOMNode DOMNode:appendChild ( DOMNode $newnode ) /追加节点18. save ( string $filename ) /保存文件19. removeChild ( DOMNode $oldnode ) /删除节点 要先求出老节点20. replaceChild ( DOMNode $newnode , DOMNode $oldnode ) /替换新节点21. setAttribute( string $name , string $value ) /设置新属性22. removeAttribute ( string $name ) /删除属性23. hasAttribute ( string $name ) /判断元素是否具有指定的属性24. hasAttributes ( void ) /判断元素是否具有属性25. getAttribute ( string $name ) /获取元素的属性26. simplexml_load_file ( string $filename) /读取xml文件27. xpath ( string $path ) /查询指令28. addAttribute ( string $name , string $value , string $namespace ) /添加属性操作29.校验器即html里的js代码 只能在IE下运行30. PHP SimpleXML模型解析XML$xml=simplexml_load_string($str);$first = $xml-first;$second= $xml-second;31.通过JavaScript解析xml数据var xml=xmlHttp.responseXML;node=xml.getElementsByTagName(“TagName”);node0.childNodes0.nodeValue;补充1:php操作xml四步走/开辟内存空间 形成面$dom = newDOMDocument(1.0,utf-8);/载入xml数据到内存 形成树$dom-load(asdf.xml);/获取同级兄弟节点 形成串$names = $dom-getElementsByTagName(name);/获取要操作的点$name = $names-item(1);补充2:libxml_disable_entity_loader(true); 解析XML时不解析实体 防止XXE攻击;补充3:sprintf ( $str,$(str中要转换成字符串的标签名1) ,$(str中要转换成字符串的标签名2)补充4:如果数据库中的名字有需要转移的字符 而写xml文件时如果没用CDATA的话 数据会异常HTTP1.HTTP: HyperText Transport Protocol, 超文本传输协议, 超文本在网络之间(b/s)传输过程中应该遵循的协议(规则) 底层需要基于TCP/IP协议 TCP/IP : 负责电脑连接 HTTP: 负责数据传输2.特点:可以传输任何数据 字符、二进制数据等 缺点:每次连接只处理一个请求3. HTTP请求分为四个部分: 请求行, 请求头, 空行, 请求数据4.content-type(post): 内容的发送形式, 只有post提交的时候才会有 空行: 用来结束请求头5. HTTP响应也分为四个部分: 响应行(状态行) 响应头 空行 响应主题(数据HTML)状态行: 用来描述服务器对数据处理的状态的, 分为三个部分协议版本 状态码 状态描述HTTP/1.1 200 OK (表示服务器正确响应)6. 状态码分为五类: 1XX: 表示服务器正在处理,还没有处理完2XX: 表示服务器已经正确处理完3XX: 重定向,表示服务器要求浏览器重新请求4XX: 浏览器错误: 浏览器发送的请求,服务器不能正确理解5XX: 服务器错误: 服务器处理不了常见的代码信息200: OK,服务器处理完成302: Found, 找到新的界面要访问: Location重定向303: See Other, 已经转移到别的地方304: Not Modified,没有修,告诉浏览器读取本地缓存400: Bad Request, 请求坏了, 服务器不认识403: Forbidden, 没有权限访问404: Not Found,找不到502: Bad Gateway ,网关错误, 没有正确的从上游服务器得到结果7. telnet可以模仿http请求 在windo下不是默认开启的8. PHP通过PHP函数修改HTTP响应头: 修改协议项 都可以使用header函数来实现JAVASCRIPT1. JavaScript 是网景(Netscape)公司开发的一种基于客户端浏览器、面向(基于)对象、事件驱动式的网页脚本语言。2.作用域就像是盒子里面的盒子 可以理解为相对的全局作用域; 无var可视为全局3.JavaScript一共有六种类型:Number、String、Boolean、Objec、Undefined、Null4. 在Javascript中,一个函数无论是有名函数还是匿名函数其都会返回函数在内存中的首地址。5.编译错误前面的代码不会执行 执行错误前面的代码会执行,接下去的代码不会执行6.与数组相关的函数 arr.push:添加数组尾部元素 arr.unshift:添加数组头部元素arr.pop:删除数组尾部元素arr.shift:删除数组头部元素 arr.splice(index,howmany):删除指定位置的指定数量元素arr.slice(start,end):截取从start到end 的元素arr.contact(arr,arr,arr):合并数组元素,返回一个新数组arr.join(separator):把数组转换为字符串arr.split(separator,howmany):切割字符串7.常用的JS事件Onload:页面载入结束后Onunload:页面关闭时Onblur:失去焦点时Onfocus:获得焦点时Onclick:点击Onmouseover:鼠标悬浮时Onmouseout:鼠标离开时Onchange:状态改变时(常用于selec)Onkeydown:键盘按下时Onkeyup:键盘弹起时Onsubmit:表单提交时9. 事件绑定:1)找对象2)找事件3)找事件的处理程序动态绑定; 对象.事件 = 事件的处理程序(通常是一个函数)10. This:指向正在操作的对象11. 绑定多个事件addEventListener(type,callback,capture)移除事件监听removeEventListener(type,callback)获取键盘键值 Event.keyCode事件冒泡就是触发范围有重复的地方 会同时触发,禁止事件冒泡用:event.stopparopagation();默认行为是指:当点击a链接时会自动跳转 要阻止默认行为用:event,preventDefault()12. 常用window对象Alert():弹出警告框Confirm:弹出确认框setTimeout(fn,second): second秒之后执行fn函数 只执行一次setInterval(fn,second):second秒之后执行fn函数 不断地执行clearInterval:中断定时器不让其继续执行13. 常用的location对象Href:返回完整url地址Search:返回问好后面的参数Assign(url):跳转到指定页面14. 常用的document方法GetElementById():通过id获取对象GetElementByName():通过标签name名获取对象GetElementsByTagName():通过获取元素标签名获取一个对象,此对象是一个数组15. 对象(常用的系统类)Length:返回字符串长度indexOf(str):返回str在字符串中出现的位置substr(num,length):截取字符串长度replace(str1,str2):替换字符串日期类getYear() :获取年份(有兼容性问题)getFullYear() :获取完整年份(格式如2015)getMonth() :获取月份(从0到11)getDate() :获取当月的第几天(从1到31)getDay() :获取当周的星期几(从0到6)getHours() :获取小时数getMinutes() :获取分钟数getSeconds() :获取秒数getMilliseconds() :获取毫秒数(从格林制时间1970年1月1日0时0分0秒到当前的毫秒数)getTime() :获取当前时间的时间戳(从格林制时间1970年1月1日0时0分0秒到当前的毫秒数)补充:在JavaScript中getTime获取的是当前时间戳 和php中的time差1000倍 因为单位不同Math数学类ceil(数值):返回大于或等于该数的最小整数floor(数值) :返回小于或等于该数的最大整数min(数值1,数值2) :返回最小值max(数值1,数值2) :返回最大值pow(数值1,数值2) :返回数值1的数值2次方:2的2次方=4random() :返回0-1之间的随机数0,1)round(数值) :返回四舍五入后的结果sqrt(数值) :返回平方根:4的平方根就是216. window是顶级对象 所以js中都是对象 对象的遍历 属性i 值是obji而不是obj.i;17. alert( p.constructor ); :返回当前对象的构造函数(返回原型对象所指向的构造函数)alert( typeof p ); :判断当前变量的数据类型alert( p instanceof person ); :判断当前对象是否是某个类的实例(返回布尔类型值)18. 对象中属性的删除操作:delete 对象.属性19. JSON对象是数据的无序集合,在内存中表现为一段连续的内存地址。在Javascript中,创建或使用JSON对象最根本的目的就是为了保存更多的数据 JSON比XML在生成与解析都更加简单 JSON主要用于第三方接口开发20. var json对象 = 属性:属性值,属性:属性值,属性:属性值;21. Object是Javascript中所有类的(系统类和自定义类)的基类22.PHP与JSON: 1)json_encode(数组或对象) :把一个数组或对象生成JSON数据2)json_decode(JSON格式的数据,$flag) :把一个JSON格式的数据反转义为数组或对象23. 当Javascript系统在加载构造函数的同时,会自动在内存中生成一个对象,我们就称之为叫做“原型对象”,在开发中,可以通过prototype属性来访问这个原型对象24. 可以把原型对象比喻成自定义对象的父类 父类里有constructor25. 当Person构造器的实例p1对象访问一个不存在的属性或方法时,系统会自动到Person构造器的原型对象中去寻找,如未找到,原型对象会自动到Object构造器的原型对象中继续寻找,如未找到,继续向上一级原型对象中去寻找我们把这种链接的查询关系,就称之为“原型链”。26. 特殊对象:arguments 是类数组,可以返回传递所有参数列表;(参数是用户定义的数组不可以用for in)27.静态属性不属于某个具体对象 又是公有的28.系统的回收机制根据 系统计时器 如果停止则回收29.局部里的return function 会将首地址返放回 外部调用 系统计时器自动+1 不会被销毁可以访问;30.闭包就是从外部访问局部变量; 让局部变量像php中的静态变量驻留在内存中;31.this就是公有属性 var是私有属性;32.call和apply可以改变this指向;两者只有语法上的区别33.call可以用于继承父类 父类.call(子类)34.new的时候会把构造器里面的内容都给 对象正则表达式1. Var str;Var reg = /正则内容/gi;2. g:global缩写,全局检索i:ignore缩写,忽略大小写3.RegExp类下两个方法:test(str) :判断字符串中是否含有指定模式的子串返回布尔类型的值,true存在,false不存在exec(str) :返回指定模式的子串调用方式:正则对象.方法();4. String类下的四个方法:search :返回指定模式的子串在字符串中出现的位置,默认从0开始match :以数组形式返回指定模式的字符串(重点)replace :替换指定模式的子串split :以数组形式返回以指定模式分割后子串调用方式:String类对象.方法();5.子表达式:在/(内容)/gi; 通过一对圆括号()括起来的内容我们就称之为“子表达式” 捕获:子表达式匹配到相应的内容后,这个过程会自动被系统所捕获,并把匹配到内容放入系统的相应缓冲区(默认从1开始)中。 反向引用:可以通过n(n代表缓冲区的编号)来引用缓存区的内容,我们把这个过程就称之为“反向引用”。6.REG.exec:主要是返回指定模式的子串,默认情况下,只能返回一个匹配结果 所以要使用while循环遍历全部结果 它返回的是一个二维数组 0为想要的结果 1n子表达式7.编写正则表达式:1)查什么2)查多少3)哪里查8. 常用的字符簇:a-z :匹配小写字符从a-z中的任一字符A-Z :匹配大写字符从A-Z中的任一字符0-9 :匹配数字从0-9中的任一字符,功能与d一致0-9a-z :匹配数字从0-9或小写字符从a-z中的任一字符0-9a-zA-Z :匹配数字从0-9或小写字符从a-z或大写字符从A-Z中的任一字符abcd :匹配字符a或字符b或字符c或字符d1234 :匹配数字1或2或3或4中的任一字符在正则表达式字符簇中,如果在第一个位置遇到了(脱字节),代表取反的含义。a-z :匹配除小写字符a-z以外的任一字符0-9 :匹配除数字0-9以外的任一字符abcd :匹配除字符a或字符b或字符c或字符d以外的任一字符9. 常用的元字符:d :匹配一个数字字符,功能与0-9类似D :匹配一个非数字字符,功能与d类似w :匹配包括下划线的任何单词字符,功能与0-9a-zA-Z_类似W :匹配任何非单词字符,功能与w类似s :匹配任何空白字符,包括空格、制表符(t)、换行符S :匹配任何非空白字符,功能与s类似. (我是一个点号) :匹配除 n 之外的任何单个字符,也包含中文字符10.元字符中的限定符*匹配前面的子表达式零次或多次,从0到多+匹配前面的子表达式一次或多次,从1到多?匹配前面的子表达式零次或一次,0次或1次n匹配确定的 n 次,匹配三位连续的数字ddd,可以更改为d3n,至少匹配n 次,至少匹配四位连续的字符w4,n,m 最少匹配 n 次且最多匹配 m 次,0-9a-zA-Z1,711.定位符 匹配输入字符串的开始位置$ 匹配输入字符串的结束位置b 匹配一个单词边界,单词的开始或结尾位置B 匹配非单词边界,b12.特殊用法匹配结果(?=exp) :正向预查 同样是电脑下输出系统为exp的那个匹配结果(?!exp) :负向预查 反之(?:) :输出结果但不捕获 如果存在子表达式且使用了exec方法,系统会自动捕获并输出子表达式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论