javascript笔记整理_第1页
javascript笔记整理_第2页
javascript笔记整理_第3页
javascript笔记整理_第4页
javascript笔记整理_第5页
已阅读5页,还剩39页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

JAVASCRIPT基础一、JAVASCRIPT概述(一)、什么是JAVASCRIPT是一种运行与JAVASCRIPT解析器/引擎中的解释型脚本语言编译型运行之前会做检查语法结构是否有问题,如果有问题的话,程序是不会被运行的解释型不会检查错误,直接运行,直到碰见错误再停止运行(二)、运行环境1、独立安装的JAVASCRIPT解析器NODEJS2、嵌入在浏览器内核中的JAVASCRIPT解析器(三)、JAVASCRIPT发展史1、1992年NOMBAS公司开发了一款叫做SCRIPTEASE脚本语言2、1995年NETSCAPE公司为NAVIGATOR20浏览器开发了一种脚本语言LIVESCRIPT,为了赶时髦,从此改名为JAVASCRIPT。3、1996年MICROSOFT在IE30发布了一款JAVASCRIPT克隆版JSCRIPT4、1997年JAVASCRIPT11作为草案提交给了ECMA欧洲计算机制造商协会ECMA262标准ECMASCRIPT是全新的标准的脚本语言完整的JAVASCRIPT包含三部分1、核心ECMASCRIPT2、文档对象模型DOM,DOCUMENTOBJECTMODEL允许我们操作页面的元素3、浏览器对象模型BOM,BROWSEROBJECTMODEL允许我们与浏览器进行对话,比如操作地址栏,历史记录(四)、JAVASCRIPT特点1、代码可以使用任何文本编辑工具编写语法结构类似于C,JAVA,C2、无需编译,由JAVASCIRPT的引擎负责执行3、弱类型语言由数据决定了变量的数据类型弱类型语言对应强类型语言由数据类型决定数据4、基于对象,面向对象OO(五)、JAVASCRIPT用途1、客户端JAVASCRIPT(1)、客户端数据计算(2)、表单验证(3)、浏览器事件的触发和处理(4)、网页特效/动效制作(5)、异步数据提交AJAX2、服务器端JAVASCRIPT(1)、分布式运算(2)、实时服务器(3)、窗口应用(4)、网络应用(二)、使用JAVASCRIPT1、浏览器内核作用负责页面内容渲染,主要有两部分组成(1)、内容排版引擎负责解析HTML/CSS(2)、脚本解释引擎负责解析JAVASCRIPT浏览器内核排版引擎脚本引擎IETRIDENTCHAKRAFIREFOXGECKO猴子系列SAFARIWEBKITWEBCORENITROCHROMEWEBKITWEBCOREV8OPERAPRESTOCARAKANOPERA2013WEBKITWEBCOREV82、第一个JAVASCRIPT程序(1)、使用独立的JAVASCRIPT解释器了解CONSOLELOG“HELLOJAVASCRIPT“(2)、使用浏览器内嵌的JS引擎执行JAVASCRIPT1)、在控制台CONSOLE上输入脚本并执行2)、将JS脚本嵌入在HTML页面中去执行A、将脚本写在HTML元素的事件里ONCLICK事件当用户点击元素时要执行的操作“B、通过元素执行JS脚本C、使用外部脚本文件A)、创建以JS为后缀的文件B)、直接编写JS代码C)、页面通过标记,进行外部JS文件的引入3、语法规范JAVASCRIPT代码组成语句语句会被JS引擎所执行的代码由表达式、关键字、运算符严格区分大小写CONSOLELOGCONSOLELOG/错误,C应小写/USERNAMEUSERNAME通常情况下,语句都用表示结束(三)、变量和常量1、变量(1)、什么是变量一个可以变化的量数据内存保存程序运行过程中所需要用到的数据。变量就是一段内存的空间,目的为了保存数据二用。变量名变量的名称。就是内存地址的别名(2)、变量的声明1)声明在内存中,开辟一段空间2)语法VAR变量名保存数据1)使用为变量赋值赋值运算符VAR变量名/声明变量名值/赋值VAR变量名值/声明变量并且初始化值初始化为变量第一次赋值的过程可称为初始化注意如果声明了变量,但是没有初始化,那么变量将自动取值为“UNDEFINED“一条语句中声明多个变量多个变量名中间,用,隔开即可VARNAME1,NAME2,NAME3VARNAME1“AAA“,NAME2,NAME3(3)、变量名的命名规范1)、要求不允许关键字以及保留关键字左变量名称比如VAR,IF,BREAK2)、命名规范A、可以包含字母、数字、下划线以及,VARNAME,VARNAME/错误,不允许包含,VARNAMEB、不能以数字开头,VARNAME1,NAME2,NAME3/正确,VAR1NAME,2NAME,3NAME/错误,VARNAME/正确C、尽量见名知意,VARAGE,VARXINGMINGD、变量名不能重复E、可以采用“匈牙利命名法”,“下划线命名法”,“驼峰命名法”匈牙利命名法控件缩写功能名称TEXTTXT,PASSWORDTXT,PWD,RADIORDO,CHECKBOXCHK,SELECTSELEG声明变量用于保存从文本框中得到用户姓名的信息VARTXT_USERNAME下划线命名法VARUSER_NAME,VAR_NAME驼峰命名法VARSTUDENTNAME(4)、变量的使用1)、未经初始化的变量A、未初始化指的是,只声明了,但是没有赋值的变量,系统会自动赋值为UNDEFINEDB、变量未声明直接使用语法错误2)、声明直接初始化将声明变量与赋值操作放在一条语句内完成,VAR变量名值VARNAME“张三丰“VARGENDER“MALE“VARAGE803)、对变量中的数值进行操作A、取值GET操作在程序中直接打印输出变量值CONSOLELOG变量名DOCUMENTWRITE变量名WINDOWALERT变量名直接使用变量名即可B、赋值SET操作通过完成的左边必须是变量的右边可以是值,也可以是变量VARNAME“张三丰“VARTEANAME“张无忌“NAMETEANAME/将TEANAME的值赋值给NAME变量(5)、变量作用域SCOPE什么是作用域变量的可用范围全局作用域凡是直接定义在WINDOW范围内的变量都属于全局作用域。全局作用域(WINDOW)中的变量也叫全局变量特点随处可用,可反复使用函数作用域凡是在函数内部定义的变量都属于函数作用域。函数作用域中的变量也称为局部变量。特点只有在函数调用时可用不可反复使用原因局部变量只有在调用时才创建,每次调用后都清除变量使用的规律调用函数时,优先使用局部变量。只有局部没有时,才去全局找。如果全局也找不到,才报错注意局部变量包括在函数内VAR的变量,参数变量也是局部变量,只不过不用VAR创建2、运算符和表达式运算符专门模拟人类想法的特殊符号表达式完成一项专门任务的公式由变量,运算符,数据组成,所有表达式都有返回值(1)、算术运算符,/,俗称模,取余,获取两个数字相除之后的余数52,使用场合1)、判断奇偶性2)、判断X数字的倍数3)限制一个运算结果不能超过指定上限隐式转换默认都转为数字类型NUMBERX,再算术计算;返回值一定是数字特殊运算中,只要碰上字符串,一切都转为字符串。法计算,变为字符串拼接。固定套路X“返回值一定是字符串由算术运算符组成的表达式称之为算术表达式(2)关系运算作比较返回值TRUE/FALSE包括0MMN累加MNMMNMNMMNM/NMM/NMNMMN简写递增递减N递增1N1NN1N递减1N1NN1NVSN相同N中的值都被1不同返回值前,返回新值后,返回旧值鄙视题VARN3/CONSOLELOGNNN/CONSOLELOGNNN/CONSOLELOGN/6VARN5/CONSOLELOGNNN/CONSOLELOGNNN/CONSOLELOGN/23、常量(1)、什么是常量常量也是内存中的一段存储空间,但是一旦确定值后,就不允许再修改,强制修改,程序不会报错(2)、目的保证程序中的数据的准确性但是也不会被修改成功,只不过是新建了个常量(3)、语法使用CONST关键字声明常量CONST常量名值习惯上,常量名采用全部大写CONSTPI3144、数据类型作用决定了内存中开辟多大的空间来保存数据JAVASCRIPT数据类型1)、原始类型基本类型A、NUMBER类型数字类型表示32位4字节的整数,也可以表示64位8字节的浮点数整数十进制数八进制0作为开始VARNUM010十六进制0XVARNUM0X00000ABCB、STRING类型字符串在JS中,一个字符或多个字符都可以称之为字符串。字符串在使用的时候必须用或“括起来,VARNAME“张三丰“,VARAGE“24“/字符串注意只要字符串参与到“操作,起到的全部都是连接作用C、BOOLEAN类型,布尔类型,取值TRUE和FALSE,使用场合条件判断的结果参与/运算时,TRUE1,FALSE0D、UNDEFINED数据不存在,未定义值E、NULL引用类型使用2)、引用类型A、数据类型转换A、JS是一款弱类型语言VARA“HELLO“/STRINGA15/NUMBERB、TYPEOF函数运算符作用查询指定变量的数据类型语法TYPEOF变量C、数据类型的转换隐式转换无需程序员干预,自动完成转换不同数据类型之间的数据再进行操作时,最终的结果的数据类型是什么隐式转换由JAVASCRIPT自动完成的。D、数据类型转换显示转换由“转换函数“指定转换成的数据类型,从而改变默认的数据类型转换策略由程序员主动调用专门函数执行的类型转换VARNUM“42“VARN42转换函数A、TOSTRING将任何数据类型的数据转换成字符串无法转换NULL和UNDEFINEDSTRINGX这是万能的原理为FUNCTIONSTRINGXIFXUNDEFINEDRETURN“UNDEFINED”ELSEIFXNULLRETURN“NULL”ELSERETURNXTOSTRINGB、字符串TONUMBERPARSEINT解析出STRING或NUMBER类型的整数部分PARSEINT“35“可以转换PARSEINT“HELLOWORD“PARSEINTSTR原理从头开始,跳过开头的空字符,依次读取数字字符,碰到第一个非数字字符退出固定套路去掉字符串中数字之后的单位;注意1、PARSEINT在转换时,碰到第一个非数字的字符时,则停止转换PARSEINT“35你好“PARSEINT“你好35“2、如果待转换的数据解析不出数字部分或首字符也不是数字的话,最后的结果为NANC、PARSEFLOAT在PARSEINT的基础上,允许转换小数点,认识第一个小数点;特点如果可转为整数,则优先转为整数;无法转为整数,才转为浮点数选择除非确实要去掉小数部分,采用PARSEINT;否则,一律使用PARSEFLOATD、非字符串TONUMBERNUMBERXNUMBER“”0NUMBERNULL0NUMBER0NUMBERUNDEFINEDNANBOOLTONUMBERTRUE1FALSE0E、一切TOBOOLEANBOOLEANX规则只有0,UNDEFINED,NULL,NAN,“,转为FALSE,其余都转为TRUE如果转不了,返回NAN,特点1、参与任何计算,结果均为NAN2、不大于不小于不等于任何值,甚至不等于自身5、函数1、什么是函数CONSOLELOGWINDOWALERTDOCUMENTWRITEPARSEINTPARSEFLOAT函数FUNCTION,可以称之为方法METHOD,或过程PROCUDURE。是一段预定义好的,独立的功能体,可以被反复的调用。预定义提前声明,声明后才能使用函数的本质FUNCTION创建一个函数对象的意思;函数对象专门封装一个函数定义的存储空间独立功能体可以包含若干条的可执行语句函数是一个引用类型的对象函数名,其实是一个引用函数对象的变量反复调用谁想用谁就过来调用,相当于把该功能体中的所有的语句都执行一遍注意函数不是在加载时就执行,而是在被调用时才会执行的函数的本质是功能完整的“对象“2、定义函数方法,过程语法FUNCTION函数名/若干条可执行操作语句A、定义函数方法3、调用函数直接通过函数名称进行调用,函数名称FUNCTIONPRINTPRINT调用函数时,是调动函数的标识,不能省;原则上参数值列表的个数和顺序应和函数定义时的参数变量列表一致。4、定义参数函数在运行过程中,需要使用外部的数据进行辅助操作,那么这个外部数据就是参数语法FUNCTION函数名参数列表/若干条执行操作语句FUNCTION函数名称参数名称1,参数名称2定义函数时所指定的参数名称,可称之为“形参形式上的参数“调用带参函数函数名称参数值列表调用函数值所传递的参数值,可称之为“实参实际参数“6、分支结构1、运算符,0NUMBERNULL0NUMBER0NUMBERUNDEFINEDNANBOOLTONUMBERTRUE1FALSE0如果转不了,返回NANNOTANUMBER2大特点1参与任何算术计算,结果永远为NAN2不大于,不小于,不等于任何值字符串TONUMBERPARSEINTSTR原理从头开始,跳过开头的空字符依次读取数字字符碰到第一个非数字字符退出固定套路去掉字符串中数字之后的单位问题不认识小数点,结果,去掉小数部分解决PARSEFLOATSTR原理同PARSEINT只不过,认识第一个小数点特点如果可转为整数,则优先转为整数无法转为整数,才转为浮点数选择除非确实要去掉小数部分,采用PARSEINT否则,一律使用PARSEFLOAT一切TOBOOLEANBOOLEANX规则只有0,UNDEFINED,NULL,NAN,“,转为FALSE其余都转为TRUE3运算符和表达式程序人的想法,在计算机中的执行运算符专门模拟人类想法的特殊符号表达式完成一项专门任务的公式由变量,运算符,数据组成所有表达式都有返回值。算术运算/模运算/取余数比如MNM除以N,取除不尽的余数部分何时使用1判断能否整除2限制一个运算结果不能超过指定上限隐式转换默认都转为数字类型NUMBERX,再算术计算返回值一定是数字特殊运算中,只要碰上字符串,一切都转为字符串。法计算,变为字符串拼接。固定套路X“返回值一定是字符串关系运算作比较返回值TRUE/FALSE包括NM/2的N次方M/MATHPOW2,N取整M0M0M|0PARSEINTM赋值运算将等号右边的值,保存在等号左边的变量中返回值等号右侧表达式的计算结果也是要存入左侧变量中的值简写扩展赋值运算一句话做两件事1取出变量中的值做计算2将结果再存回变量中MNMMN累加MNMMNMNMMNM/NMM/NMNMMN简写递增递减N递增1N1NN1N递减1N1NN1NVSN相同N中的值都被1不同返回值前,返回新值后,返回旧值鄙视题VARN3/表达式默认都是从左向右依次执行/CONSOLELOGNNN/CONSOLELOGNNN/CONSOLELOGN/6VARN5/CONSOLELOGNNN/CONSOLELOGNNN/CONSOLELOGN/2正课1函数2分支结构1函数什么是函数封装一项任务的步骤清单的代码段,再起一个名字为什么代码重用何时使用函数如果一项任务可能被反复调用,都要先封装在一个函数中,再反复调用函数。如何使用2步1创建一个函数声明方式FUNCTION函数名参数变量列表函数体(步骤清单)RETURN返回值其中参数变量专门在调用函数时,接收函数必须的数据的变量何时定义只要函数必须某些数据才能正常执行时返回值函数执行的结果何时定义只有调用者需要获得执行结果时,才定义2调用函数VAR返回值函数名参数值列表其中是调动函数的标识,不能省原则上参数值列表的个数和顺序应和函数定义时的参数变量列表一致。函数的本质FUNCTION创建一个函数对象的意思什么是函数对象专门封装一个函数定义的存储空间其实,函数是一个引用类型的对象函数名,其实是一个引用函数对象的变量函数只有在调用时才执行,不调用不执行变量作用域SCOPE什么是作用域变量的可用范围全局作用域凡是直接定义在WINDOW范围内的变量都属于全局作用域。全局作用域(WINDOW)中的变量也叫全局变量特点随处可用,可反复使用函数作用域凡是在函数内部定义的变量都属于函数作用域。函数作用域中的变量也称为局部变量。特点只有在函数调用时可用不可反复使用原因局部变量只有在调用时才创建,每次调用后都清除变量使用的规律调用函数时,优先使用局部变量。只有局部没有时,才去全局找。如果全局也找不到,才报错注意局部变量包括在函数内VAR的变量参数变量也是局部变量,只不过不用VAR创建声明提前(HOIST)在正式执行程序前,都会将所有VAR声明的变量和FUNCTION声明的函数提前到当前作用域的顶部集中创建。但是,赋值留在原地。SCOPEVARA10/全局FUNCTIONFUNVARA100/局部A/局部CONSOLELOGA/局部FUN/101CONSOLELOGA/10VARA10FUNCTIONFUNCONSOLELOGAVARA100CONSOLELOGAFUN/UNDEFINED100CONSOLELOGA/10按值传递BYVALUE两个变量间赋值或将变量作为参数传入函数时,其实都是将原变量中的值,赋值一份给对方新变量对原始类型的值修改新变量,不会影响原变量对引用类型的对象通过新变量修改对象,等效于直接修改原对象。2全局函数ES标准规定的,浏览器厂商已经实现的不用任何对象就可直接访问的现成函数手册JAVASCRIPTJAVASCRIPT对象JSFUNCTIONS全局函数列表编码和解码编码将URL中的多字节字符,编码为单字节字符为什么URL标准中,不允许出现多字节字符,否则乱码比如SEARCHKEYWORD犀牛书SEARCHKEYWORDE78A80E7899BE4B9A6宋仲基E5AE8BE4BBB2E59FBA如何编码VARCODEENCODEURISTR解码将编码后的单字节字符,解码回多字节字符原文如何解码VARSTRDECODEURICODE问题URL标准中也不允许出现保留字符比如“/“但ENCODEURI和DECODEURI不能对保留字符编码解码比如HTTP/TEDUCNWDHTTP3A2F2FTEDUCN解决编码VARCODEENCODEURICOMPONENTSTR解码VARSTRDECODEURICOMPONENTCODEEVAL可执行字符串格式的表达式注意如果传入的字符串语法错误,或无法执行,则报错无穷大JS中,如果除数为0,返回无穷大INFINITY检测一个数字是否在有效范围内ISFINITENUM如果返回TRUE,说明NUM是有效范围内的数字如果返回FALSE,说明NUM超出了最大数字的范围3分支结构让程序根据不同的条件,执行不同的任务一个条件,一件事,满足就做,不满足就不做如果操作简单短路条件VARBA/取出A中的值,复制一份给BACONSOLELOGA/11CONSOLELOGB/10VARCARD10FUNCTIONBUYCARDCARD3CONSOLELOGCARDBUYCARD/7CONSOLELOGCARD/10操作2多个条件,多件事,多选一执行如果操作简单三目运算条件1操作1条件2操作2默认操作如果根据不同条件,选择不同的值条件1值1条件2值2默认值最终返回的是一个值强调默认操作或默认值不能省略如果操作复杂ELSEIFIF条件1操作1ELSEIF条件2操作2ELSEIFELSE默认操作/最后的ELSE可省略如果所有条件都是等值比较SWITCHCASESWITCH表达式/入口,开关CASE值1操作1CASE值2操作2CASEDEFAULT默认操作/最后一个DEFAULT可省略执行原理先计算表达式的值再用表达式的值依次和每个CASE后的值做全等比较如果表达式的值全等于某个CASE的值,则进入CASE中执行操作。问题执行完当前CASE后,会陆续触发之后所有CASE中的操作。解决BREAK专门中止当前结构的执行通常用于每个CASE之间RETURN,BREAK,不能嵌入到三目或短路结构中必须独立一句话使用如果前后两个CASE使用相同的操作时,两个CASE间不用加BREAKSWITCHCASEVSIFELSE如果所有条件都是等值比较,首选SWITCHCASE其余都选IFELSE分支结构中的隐式转换默认将所有条件都转为BOOL,再判断正课1循环结构2数组1循环结构让程序反复执行同一代码段如何使用三要素1循环条件可以继续循环的条件2循环变量循环条件中专门用作比较的变量,循环变量总是向不满足循环条件的趋势在变化3循环体循环要反复执行的代码段三种1如果循环变量的变化没有规律VAR循环变量初始值WHILE循环条件循环体迭代变化循环变量2即使第一次条件都不满足,也至少能执行一次VAR循环变量初始值DO循环体迭代变化循环变量WHILE循环条件DOWHILEVSWHILE只看第一次如果第一次条件就满足,则两者完全一样只有第一次条件不满足WHILE一次都不执行DOWHILE至少可执行一次3如果循环变量的变化有规律FOR循环完全等效于WHILE循环VAR循环变量初始值FOR循环条件迭代变化循环变量循环体FOR循环的特殊写法1循环变量部分可省略或放在循环外部可同时声明并初始化多个变量2迭代变化循环变量部分可省略或放在循环体后可同时执行多个短小的操作但不能改变程序原来的执行顺序3死循环循环条件永远为TRUEWHILETRUEFORFOR循环的特殊写法中,FOR中的分号永远不能省略退出循环1完全使用循环条件控制退出首选,难度大2先用死循环,在循环过程中用BREAK退出不得已采用,难度低CONTINUE停止本轮循环,继续下一轮简写1先用基本写法实现功能,再尝试简写重构2简写不能破坏原程序的执行顺序复杂循环的实现步骤STEP1先抽取部分数据找规律,总结公式STEP2用另一个循环,反复执行公式打印三角形FUNCTIONZHENGLFORVARR1R正课1数组什么是连续存储多个数据的存储空间,再起一个统一的名字多个变量的集合,起一个统一的变量名为什么程序数据结构算法算法解决问题的步骤数据结构数据在内存中的存储结构好的数据结构,可极大提高程序的执行效率何时使用今后只要同时存储多个相关数据,就要用数组如何使用创建数组3种情况1创建一个空数组1数组直接量VARARR/创建新数组2使用NEWVARARRNEWARRAY2创建数组同时,初始化元素1数组直接量VARARR值1,值2,2使用NEWVARARRNEWARRAY值1,值2,3创建指定个数个空元素的数组1使用NEWVARARRNEWARRAYN数组的存储方式每个元素都是连续存储每个元素都有唯一的序号下标数组下标都是从0开始只要访问数组中指定位置的元素,都必须用下标将数据存入数组ARRI值将“值“存入数组ARR的下标为I的元素中特殊如果I越界,JS会自动在I位置创建新元素,保存值会造成下标不再连续稀疏数组数组中的元素不限制存入的数据类型获取数组元素值ARRI用法和普通变量完全一样特殊如果I越界,则返回UNDEFINED数组的LENGTH属性记录了理论上的元素个数,但无法反应实际的元素个数。强调LENGTH属性永远等于最大下标1固定套路1最后一个元素ARRARRLENGTH12在末尾追加一个新元素ARRARRLENGTH值3缩容ARRLENGTH更小的值数组是引用类型的对象。垃圾回收释放不再被任何变量引用的对象垃圾回收器专门记录对象的引用次数,并回收不再被引用的对象的程序。垃圾回收器和主程序并行在后台执行垃圾回收器会为每个对象创建一个引用计数器COUNTER只要多一个变量引用对象,COUNTER就会被1只要一个变量释放了对对象的引用,COUNTER就会被1不再有任何变量引用该对象时COUNTER0,对象被垃圾回收器释放。NULL专用于主动释放一个对象。建议,在使用完一个较大的对象后,都要主动释放遍历数组FORVARI0ISTEP2再拼接开头和结尾2连接和获取子数组连接VARNEWARRARR1CONCAT值1,值2,ARR2,将CONCAT后的内容,和ARR1拼接,组成新数组返回强调CONCAT不修改原数组,而是返回新数组如果CONCAT的参数中包含数组,则打散数组,以单个元素拼接获取子数组VARSUBARRARRSLICESTARTI,ENDI1获取ARR中STARTI位置开始,到ENDI位置的所有元素组成新数组强调含头不含尾其实,第二个参数可省略,表示从STARTI一直获取到结尾可支持负数参数N表示倒数第N个元素,相当于LENGTHNHASH数组VARARR“杨幂“,81,59,89CONSOLELOGARRVARYMYM“NAME“杨幂“YM“MATH“81YM“CHS“59YM“ENG“89CONSOLELOGYM/遍历YM的每个属性FORVARKEYINYM/输出下标名元素内容CONSOLELOGKEY“YMKEYJOIN使用USACHINAFRANCEJAPANCANADAVARCTS“USA“,“CHINA“,“FRANCE“,“JAPAN“,“CANADA“DOCUMENTBODYINNERHTML“CTSJOIN“注意即使使用负数参数,也必须遵守含头不含尾3SPLICE删除,插入,替换强调直接修改原数组删除VARDELETESARRSPLICESTARTI,N删除ARR中STARTI位置开始的N个元素返回被删除的元素组成的临时新数组插入ARRSPLICESTARTI,0,值1,值2,在ARR中STARTI位置,插入新值。旧值被向后顺移强调要插入的值,只能以单独的参数传入,不支持打散数组参数替换VARDELETESARRSPLICESTARTI,N,值1,值2,删除ARR中STARTI位置开始的N个元素,再在STARTI位置插入新元素。删除的元素个数和插入的新元素个数不必相等4反转数组元素ARRREVERSE回顾1数组API1数组转字符串2种1STRINGARR默认用逗号连接每个元素2ARRJOIN“连接符“可自定义元素间的连接符固定套路1单词拼接为句子WORDSJOIN“2无缝拼接CHARSJOIN“3将数组拼接为页面元素“ARRJOIN“2拼接和获取子数组强调不改变原数组,只能返回新数组1拼接VARNEWARRARR1CONCAT值1,值2,ARR2,将ARR1的内容拼接上CONCAT之后的数据,返回新数组特点CONCAT可打散参数中的数组为单个元素,再拼接2获取子数组VARSUBARRARRSLICESTARTI,ENDI1获取ARR中STARTI位置到ENDI位置的元素组成新子数组特殊1含头不含尾2第二个参数可省略,表示一直获得到结尾3支持负数参数N表示倒数第N个元素本质相当于ARRLENGTHN3SPLICE删除,插入,替换强调直接修改原数组删除VARDELETESARRSPLICESTARTI,N删除ARR中STARTI位置开始后的N个元素强调返回被删除的元素组成的临时数组插入ARRSPLICESTARTI,0,值1,值2,在ARR中STARTI位置出入新元素原STARTI位置及其之后的元素,被向后顺移强调不支持打散参数中的数组。替换VARDELETESARRSPLICESTARTI,N,值1,值2,删除STARTI位置开始后的N个元素,再在STARTI位置插入新元素强调插入元素的个数和删除元素的个数不一定相等4反转数组ARRREVERSE正课1数组排序栈和队列二维数组2STRING1数组排序手动排序冒泡排序使用APIARRSORT/直接修改原数组特点将ARR中的元素,以字符串方式升序排列问题只能对字符串排序如果元素不是字符串,会被隐式转为字符串解决自定义排序规则何时自定义排序只要对非字符串类型的元素排序如何自定义排序规则2步1自定义比较器函数比较器函数专门比较任意两值大小的函数要求2个参数A,B返回值如果AB,就返回正数否则如果AARRI1/不声明第三个变量,交换两数/XYYXYXYARRIARRI1ARRI1ARRIARRI1ARRIARRI1VARARR8,3,7,5,4,2,1,6BUBBLESORTARRCONSOLELOGSTRINGARR/1,2,3,4,5,6,7,8自定义比较器函数VARARR18,3,7,5,4,2,1,6ARR1SORTCONSOLELOGSTRINGARR1VARARR212,123,3,23,1,2/1,2,3,12,23,123/定义比较器函数/FUNCTIONCMPA,B/RETURNAB/ARR2SORTCMP/CONSOLELOGSTRINGARR2/FUNCTIONSORTARR,COMPARE/COMPAREFUNCTIONA,BRETURNABIFCOMPAREUNDEFINED/如果COMPARE没有值FUNCTIONCOMPAREA,B/才创建原装比较器函数RETURNSTRINGASTRINGB1STRINGA0VARTEMPARRIARRIARRI1ARRI1TEMPVARNAMES“SCOTT“,“ROSE“,“JACK“,“TOM“,“ERIC“SORTNAMESNAMESREVERSECONSOLELOGSTRINGNAMES/FUNCTIONCMPA,BRETURNABARR2SORTCMPCONSOLELOGSTRINGARR2VARBUS/改成从开头上下车FORVARI1I0VARCBUSPOPCONSOLELOGSTRINGBUS“C“下车“补创建一个函数2种1声明方式可被声明提前FUNCTION函数名参数列表函数体RETURN返回值2以函数直接量方式创建不会被提前VAR函数名FUNCTION参数列表函数体RETURN返回值说明函数名其实就是一个变量函数其实就是一个对象函数名变量保存了函数对象的地址,是引用的关系作用域JS中只有2级作用域全局作用域和函数作用域没有块作用域JAVA中有3级作用域全局作用域,函数作用域,块作用域正课1数组栈和队列二维数组2STRING1数组栈和队列栈一端封闭,只能从另一端进出的数组特点FILO何时使用只要希望始终使用最新的元素时如何使用1结尾出入栈入ARRPUSH值出VARLASTARRPOP优每次出入栈不影响其他元素的位置2开头出入栈入ARRUNSHIFT值出VARFIRSTARRSHIFT缺每次出入栈其它所有元素都要顺移一位队列只能从一端进入,从另一端出的数组FIFO何时使用只要希望按照进入数组的顺序使用元素时如何使用入ARRPUSH值出VARFIRSTARRSHIFT二维数组数组中的元素又引用了另一个子数组何时使用1专门存储横行竖列的二维数据2将一个大数组的元素,再进行分类时如何使用创建2种1如果创建时,就初始化元素VARARR/01/定义函数DEC2BIN,将给定的十进制数,转为二进制FUNCTIONDEC2BINDECFORVARBINDEC0DECPARSEINTDEC/2BINUNSHIFTDEC2/循环体/循环结束RETURNBINJOIN“/返回BIN无缝拼接的结果VARN90CONSOLELOGDEC2BINN/1011010CONSOLELOGNTOSTRING2/创建数组PROVS保存省份名称VARPROVS“河北省“,“河南省“,“山东省“/01/创建二维数组CITIES保存所有城市VARCITIES“石家庄“,“保定“,“廊坊“,/0“郑州“,“洛阳“,“开封“,“济南“,“青岛“,“烟台“FUNCTIONGETCITIESBYPROVPROV/遍历PROVS中每个省份名FORVARI0I值1,值2,/0值1,值2,/12先创建空数组,再添加子数组VARARRARR0值1,值2,ARR1值1,值2,访问元素ARRRC强调C越界返回UNDEFINEDR越界报错遍历外层循环遍历行,内层循环遍历列FORVARR0R当前行子数组FORVARC0C/作业2编码解码/将MSG转化为由每个字符的UNICODE号组成的数字序列FUNCTIONENCODEMSG/遍历MSG中每个字符,同时声明空数组CODEFORVARI0,CODEI1大小写转换何时使用只要不区分大小写时,都要先转换为一致的大小写,再比较如何转换VARNEWSTRSTRTOUPPERCASEVARNEWSTRSTRTOLOWERCASE2获取指定位置的字符2种STRI或STRCHARATI获得指定位置字符的UNICODE号VARNUMSTRCHARCODEATI将UNICODE号,反向还原为原字符VARCHARSTRINGFROMCHARCODENUM1STRINGAPI1获取子字符串VARSUBSTRSTRSLICESTARTI,ENDI1STRSUBSTRINGSTARTI,ENDI1SUBSTRING不支持负数参数解决N换位STRLENGTHNSTRSUBSTRSTARTI,N特点不考虑含头不含尾2查找关键词1查找一个固定的关键词的位置VARISTRINDEXOF“关键词“,FROMI从FROMI位置开始,查找下一个关键词的位置如果省略FROMI,表示从头开始找默认为0返回值如果找到,返回关键词第一个字所在的位置下标如果没找到,返回1VARISTRLASTINDEXOF“关键词“,FROMI从FROMI位置开始,查找前一个关键词的位置如果省略FROMI,表示从结尾开始找默认为STRLENGTH1返回值都一样缺点只能查找固定关键词2正则表达式什么是规定字符串中字符出现规律的一套规则何时使用查找只要按照字符出现的规律,模糊匹配关键词时验证格式验证如何使用1最简单的正则就是关键词的原文/NO/2字符集规定一位字符可选的备选字符列表何时使用只要字符串中一位字符,有多种情况可选时如何使用备选字符列表强调一个字符集,只匹配一位字符ABCDE简写如果备选字符列表中部分字符UNICODE连续,可用省略中间的字符固定套路1一位数字092一位小写字母AZ3一位字母数字或下划线09AZAZ_4汉字U4E00U9FA5排除除了指定的字符,都行排除的字符比如除了4和747慎用因为排除后的范围,太大3预定义字符集对常用字符集的简写方式1一位数字09简写为D2一位字母数字或下划线09AZAZ_简写为W3空字符空格,换行,制表符简写为S4除换行外的所有字符缺点固定的。今后如果需求和预定义字符集完全匹配,就优先使用预定义字符集。如果需求和预定义字符集不匹配,指定自定义字符集4数量词规定一个字符集出现次数的规则默认仅修饰相邻的前一个字符集有明确数量N,M规定一个字符集最少出现N次,最多M次N,规定至少N次,多了不限N规定必须N次没有明确数量可有可无最多一次可有可无,多了不限至少一次,多了不限5选择和分组分组将多个字符集,分为一组,用()在正则中进行分组为什么1希望一个数量词,同时修饰多个字符集时2分段获取关键词的子内容选择或|满足前后两个规则之一即可强调|的优先级,最低手机号86或0086可有可无,最多1次86|0086空字符,可有可无,多了不限S1在3,4,5,7,8中选一个345789位数字D96匹配特殊位置匹配字符串中的特殊位置指代字符串的开始位置以XXX开头几乎总是写在正则的开始位置指代字符串的结尾位置以XXX结尾几乎总写在正则的结尾位置如果同时前加,后加要求从头到尾必须完整匹配凡是验证,都要加和B单词边界开头和结尾,标点,空字符7预判提前扫描整个字符串,判断是否满足部分规则密码强度68位,字母,数字的组合。要求至少包含一个大写字母和一位数字1预判不全由字母组成说明可能包含数字或特殊符号AZAZ2预判不全由小写字母和数字组成说明可能包含大写字母或特殊符号AZ093AZAZ096,8完整AZAZAZ09AZAZ096,81STRINGAPI查找关键词4种1查找一个固定的关键词位置VARISTRINDEXOF“关键词“,FROMIVARISTRLASTINDEXOF“关键词“,FROMI缺点只能查找固定的一个关键词不支持正则补在JS中创建正则表达式VARREG/正则表达式/IG创建一个正则表达式对象。其中,I表示忽略大小写,G表示查找全部2判断是否包含关键词判断有没有VARISTRSEARCHREG在STR中查找第一个符合正则表达式要求的关键词的位置没找到,返回1。缺点1只返回位置,无法返回关键词内容2只能找第一个,无法查找所有,不认G3查找所有关键词的内容VARKWORDSSTRMATCHREG1REG不加G,MATCH也只找第一个何时使用希望获得第一个关键词的内容和位置时返回值数组,其中包含找到的关键词内容KWORDS“关键词“KWORDSINDEX关键词的位置如果没找到,返回NULL2REG加G,MATCH会找到所有关键词的内容何时使用希望获得所有关键词的内容时返回值数组,包含了所有关键词的内容数组的LENGTH属性,记录了所有关键词个数缺点只能找到所有关键词的内容,无法找到每个关键词的位置。强调只要使用MATCH,都可能返回NULL,都要先判断不是NULL,再执行后续操作4REGEXECSTR即查找每个关键词的内容,又查找每个关键词的位置。VARMSG“那天我去了她家,我说我CAO,你家真大“VARIMSGSEARCH/我卧窝艹草槽操|CAO/IFI1ALERT“关小黑屋“ELSEALERT“CLEAR“VARMSG“那天我去了她家,我说我CAO,你家真大“VARREG/我卧窝艹草槽操|CAO/IVARKWORDSMSGMATCHREG/KWORDS“完整关键词“,“分组1子内容“,CONSOLELOGKWORDSIFKWORDSNULLCONSOLELOG“在“KWORDSINDEX“位置,发现敏感词“KWORDS0CONSOLELOG“关小黑屋“ELSECONSOLELOG“CLEAR“替换关键词基本STRSTRREPLACEREG,“替换内容“强调REPLACE如果不加G,也只能替换第一个关键词通常都加G高级STRSTRREPLACEREG,FUNCTIONKWORD,1,2,/KWORD获得当前找到的一个关键词/N,获得正则中第N个分组的子内容RETURN替换内容如果今后希望对找到的关键词分段处理时,都要先将正则表达式用分组。删除替换为“格式化将字符串替换为具有指定格式的内容2步1将正则表达式,按格式要求分组2在REPLACE时,使用N指代第N个分组的子内容切割将字符串按照指定的分隔符切割为子字符串的数组何时切割只要希望分段获得字符串的子内容时如何切割VARSUBSTRSSTRSPLIT“分隔符“/REG返回值包含切割后所有子字符串的数组强调结果数组中不再包含分隔符固定套路将STR打散成单个字符的数组STRSPLIT“VARSTR“NOZUONODIENOCANNOBIBI“STRSTRREPLACE/NO/IG,“CONSOLELOGSTRVARMSG“那天,我去了她家,我说我草,你家真大“她说,要和我去草地野餐,“我草草的收拾了草坪,“她说,我去去就来“MSGMSGREPLACE/我去草1,2/IG,/第一步将正则分组/12/第二步在参数中,用N获得分组的子内容FUNCTIONKWORD,1,2/,/保留第一分组,替换第二分组为对应个数个RETURN12LENGTH1“CONSOLELOGMSGFUNCTIONLTRIMSTR/删除STR开头的空字符RETURNSTRREPLACE/S/,“FUNCTIONRTRIMSTR/删除STR结尾的空字RETURNSTRREPLACE/S/,“FUNCTIONTRIMSTR/同时删除STR开头和结尾的空字符RETURNSTRREPLACE/S|S/G,“VARSTR“ZHANGDONG“CONSOLELOGLTRIMSTR/“ZHANGDONG“CONSOLELOGRTRIMSTR/“ZHANGDONG“CONSOLELOGTRIMSTR/“ZHANGDONG“注意上述的LTRIMRTRIMTRIM都可以直接使用VARBIRTH“19831226“/第一步将字符串,按格式要求分组VARREG/D4D2D2/第二步在替换时,用N代替第N个分组的子内容BIRTHBIRTHREPLACEREG,“1年2月3日“CONSOLELOGBIRTHVARTIME“20160508一下0429“/2016年05月08日星期一下午0429VARREG/D4D2D2U4E00U9FA5U4E00U9FA5D2D2/TIMETIMEREPLACEREG,“1年2月3日星期45午67“CONSOLELOGTIMEVARMSG“TOM补给兵60MARY医护兵80JOHN特种兵30“VARUSERSMSGSPLIT“/将MSG按切割为USERS数组/USERS“TOM补给兵60“,“MARY医护兵80“,/遍历USERS中每个子字符串FORVARI0IS/将USERS的内容去空格,截取从4到5的子字符串,再按REG切割为NAMES数组VARNAMESUSERSINNERHTMLTRIMSLICE4,5SPLIT/S/NAMESSORT/将NAMES默认排序/如果DIR是1,就颠倒NAMESDIR1USERSINNERHTML/将USERS的内容设置为/NAMES按拼接的结果“NAMESJOIN“1REGEXP什么是封装一条正则表达式,提供用正则表达式执行查找和验证的功能何时使用按规则,查找,替换,切割,验证字符串时如何使用创建1直接量VARREG/正则表达式/IG何时使用如果正则表达式是提前固定好的缺点无法在运行时动态生成正则表达式转义如果正则中包含/,需要换为/2用NEWVARREGNEWREGEXP“正则表达式“,“IG“何时使用如果正则表达式需要在运行时,动态拼接转义“D,S,WDSWAPI查找4种STRING3种1查找固定的一个关键词的位置不支持正则VARISTRINDEXOF“关键词“,FROMIVARISTRLASTINDEXOF“关键词“,FROMI2只判断有没有关键词只能返回第一个关键词的位置无法返回内容VARISTRSEARCHREG/不支持G3MATCH1不加G查找第一个关键词的位置和内容缺只能找第一个VARARRSTRMATCHREGARRKWORD,1,2,INDEX2加G查找所有关键词的内容无法获得每个位置VARARRSTRMATCHREGARRKWORD1,KWORD2,4REGEXP即可查找每个关键词的内容,又可获得每个位置VARARRREGEXECSTR强调一般都要加G如果不加G,等效于STRMATCHREG依次查找STR中符合REG要求的一个关键词3件事1将本次找到的关键词保存在数组第一个元素ARRKWORD,1,2,2将本次找到的关键词的位置保存在数组的IND

温馨提示

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

评论

0/150

提交评论