8第九周 - WEB开发基础 - JavaScript函数及序列化转义
Posted chen170615
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8第九周 - WEB开发基础 - JavaScript函数及序列化转义相关的知识,希望对你有一定的参考价值。
JavaScript的函数:大体会分为是三个,普通函数、匿名函数、自执行函数(创建函数并且自动执行)。
A、循环语句
for语句:
第一种:
for (var item in [11,22,33]) { console.log(item); continue; } 第二种: var arra = [11,22,33] for (var i=0;i<arra.lenght;i=i+1){ console.log(i) }
while语句:
while (判断条件){ 执行代码 }
B、条件语句
if(判断条件){ }else if(判断条件){ }else if(判断条件){ }esle { }
C、switch case 语句
switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //...; break; } 如: name = 3 switch (name){ case ‘1‘: age = 123; break; case ‘2‘: age = 456; break; default: age = 7; }
备注:swtich()变量类型只能是int、short、char、byte和enum类型;
switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。
注意的是case后面只能是常量,可以是运算表达式,但一定要符合正确的类型。不能是变量,即便变量在之前进行了赋值,JVM依然会报错。
A、普通函数:
function fun() { var chen = "chen1203" //执行主体 }
B、匿名函数:
function fun(arg) { return arg+1 } setInterval("fun()",5000); // 定时器 setInterval(function () { console.log(123); })
C、自执行函数(创建函数并且自动及执行)
<script> function fun(arg) { console.log(arg); } (function(arg) { console.log(arg) })(1) </script>
1、序列化
- JSON.stringify(obj) 序列化
- JSON.parse(str) 反序列化
2、转义
- decodeURI( ) URl中未转义的字符
- decodeURIComponent( ) URI组件中的未转义字符
- encodeURI( ) URI中的转义字符
- encodeURIComponent( ) 转义URI组件中的字符
- escape( ) 对字符串转义
- unescape( ) 给转义字符串解码
- URIError 由URl的编码和解码方法抛出
3、eval
javascript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值。
- eval()
- EvalError 执行字符串中的JavaScript代码
4、正则表达式
1、定义正则表达式
- /.../ 用于定义正则表达式
- /.../g 表示全局匹配
- /.../i 表示不区分大小写
- /.../m 表示多行匹配
- JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容)
var pattern = /^Javaw*/gm; var text = "JavaScript is more fun than JavaEE or JavaBeans!"; result = pattern.exec(text) result = pattern.exec(text) result = pattern.exec(text)
注:定义正则表达式也可以 reg= new RegExp()
2、匹配
JavaScript中支持正则表达式,其主要提供了两个功能:
- test(string) 检查字符串中是否和正则匹配
n = ‘uui99sdf‘ reg = /d+/ reg.test(n) ---> true # 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$
- exec(string) 获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。
获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。 非全局模式 获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配) var pattern = /Javaw*/; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text) var pattern = /(Java)w*/; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text) 全局模式 需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕 var pattern = /Javaw*/g; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text) var pattern = /(Java)w*/g; var text = "JavaScript is more fun than Java or JavaBeans!"; result = pattern.exec(text)
3、字符串中相关方法
obj.search(regexp) 获取索引位置,搜索整个字符串,返回匹配成功的第一个位置(g模式无效) obj.match(regexp) 获取匹配内容,搜索整个字符串,获取找到第一个匹配内容,如果正则是g模式找到全部 obj.replace(regexp, replacement) 替换匹配替换,正则中有g则替换所有,否则只替换第一个匹配项, $数字:匹配的第n个组内容; $&:当前匹配的内容; $`:位于匹配子串左侧的文本; $‘:位于匹配子串右侧的文本 $$:直接量$符号
以上是关于8第九周 - WEB开发基础 - JavaScript函数及序列化转义的主要内容,如果未能解决你的问题,请参考以下文章
2017-2018-1 20155218 《信息安全系统设计基础》第九周学习总结