一、URL转义:对URL进行编码、解析,原字符串不动,生成新的字符串,
方法一:encodeURI()与decodeURI(),不会对下列字符编码: ASCII字母、数字、~!@#$&*()=:/,;?+'
方法二:encodeURIComponent()与decodeURIComponent(),不会对下列字符编码: ASCII字母、数字、~!*()'
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text</title> <style> </style> </head> <body> <div>JS基础学习:其他</div> <div>转义:对URI进行编码、解析,原字符串不动,生成新的转义字符串,</div> <div>encodeURI与encodeURIComponent,均不能对数字和某些特殊的字符进行编码,且前者编码的范围较小</div> <script> var s1 = "http://URL你好"; console.log(s1); //http://URL你好 //1、encodeURI 与 decodeURI ,不将http://转义, //对字符串进行编码, s1_encode = encodeURI(s1); console.log(s1_encode); //http://URL%E4%BD%A0%E5%A5%BD //将转义的字符串解析, s1_decode = decodeURI(s1_encode); console.log(s1_decode); //http://URL你好 console.log(s1===s1_decode); //true //2、encodeURIComponent 与 decodeURIComponent ,将http://转义, //对字符串进行编码,原字符串不动,生成新的转义字符串, s1_encodeC = encodeURIComponent(s1); console.log(s1_encodeC); //http%3A%2F%2FURL%E4%BD%A0%E5%A5%BD //将转义的字符串解析, s1_decodeC = decodeURIComponent(s1_encodeC); console.log(s1_decodeC); //http://URL你好 console.log(s1===s1_decodeC); //true </script> </body> </html>
注意:同样进行转义的,还有escape方法,它主要针对cookies使用,其中 ASCII字母、数字、@*/+ 不会被编码。此方法不常用。
二、序列化:其他数据类型和字符串之间的转换,生成新数据,原数据不变,
JSON.stringify()将其他数据类型,转换成字符串,
JSON.parse()将字符串解析成相应数据类型,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text</title> <style> </style> </head> <body> <div>JS基础学习:其他</div> <div>序列化:不同数据格式与字符串之间的转化</div> <div></div> <script> //JSON.stringify()将其他数据类型,转换成字符串, //JSON.parse()将字符串解析成相应数据类型, var a = [1,2,3,"fe",]; a_json = JSON.stringify(a); console.log(a,typeof a); //[1, 2, 3, "fe"] "object" console.log(a_json,typeof a_json); //[1,2,3,"fe"] string a_json_parse = JSON.parse(a_json); console.log(a_json_parse,typeof a_json_parse); //[1, 2, 3, "fe"] "object" console.log(a_json_parse === a); //false b = {k1:12,k2:"lucy",} b_json = JSON.stringify(b); console.log(b,typeof b); //{k1: 12, k2: "lucy"} "object" console.log(b_json,typeof b_json); //{"k1":12,"k2":"lucy"} string b_json_parse = JSON.parse(b_json); console.log(b_json_parse,typeof b_json_parse); //{k1: 12, k2: "lucy"} "object" console.log(b_json_parse === b); //false </script> </body> </html>
三、eval:可以解析并执行字符串格式的表达式或代码
python中的eval计算字符串形式的公式、并返回计算结果;exec解析字符串形式的代码并执行、返回执行结果,
这里的eval包含了上述两种功能,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text</title> <style> </style> </head> <body> <div>JS基础学习:其他</div> <div>eval:解析并执行字符串形式的表达式或代码,返回结果,</div> <div></div> <script> //计算字符串形式的表达式 equ = "12+34"; ret = eval(equ); console.log(ret,typeof ret); //46 "number" //解析字符串形式的代码 var str = "hello world!"; cod = "console.log(str)"; eval(cod); //hello world! </script> </body> </html>
四、正则表达式:
在任何语言中的规则都基本相同,这里重点强调的是:test 匹配项检查,exec 获取匹配元素,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text</title> <style> </style> </head> <body> <div>JS基础学习:其他</div> <div>正则表达式</div> <div></div> <script> /* //test:检查某个字符串是否符合某种模式 re = /\d+/ str = "234324234dfa" ret = re.test(str); console.log(ret); //true strN = 1432423; ret = re.test(strN); console.log(ret); //true strS = "JFIOFJ"; ret = re.test(strS); console.log(ret); //false */ //exec:获取匹配某种模式的字符串 re = /hello/ str = "hello world"; ret = re.exec(str); console.log(ret); //["hello", index: 0, input: "hello world"] </script> </body> </html>
五、关于时间:涉及到的时间只有两种:统一时间、东八区时间,东八区时间比统一时间多8个小时,
通过创建时间对象,调用关于时间的各方法,进行时间的读取和设置,
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>text</title> <style> </style> </head> <body> <div>JS基础学习:其他</div> <div>date</div> <div></div> <script> //东八区时间 date = new Date(); console.log(date.getTime()); //1502602129115,1970年1月1日至今的毫秒数 //返回一月中的一天,几号 console.log(date.getDate()); //13 //返回一周中的一天,0-6,周几 console.log(date.getDay()); //0 //返回月份 console.log(date.getMonth()); //7 //返回年 console.log(date.getYear()); //117,被getFullYear替代, console.log(date.getFullYear()); //2017 //返回小时、分钟、秒数 console.log(date.getHours(),date.getMinutes(),date.getSeconds(),); //13 32 4 //世界统一时间:比东八区时间,少8小时 date = new Date(); //返回一月中的一天,几号 console.log(date.getUTCDate()); //13 //返回一周中的一天,0-6,周几 console.log(date.getUTCDay()); //0 //返回月份 console.log(date.getUTCMonth()); //7 //返回年 console.log(date.getUTCFullYear()); //2017 //返回小时、分钟、秒数 console.log(date.getUTCHours(),date.getUTCMinutes(),date.getUTCSeconds(),); //5 35 20 //除了读取时间,还可以对时间进行设置 date.setDate(12); console.log(date.getDate()); //12 </script> </body> </html>
·在页面上显示时间的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>time</title> </head> <body> <div id='date'></div> <script language="JavaScript"> function getdates(){ var w_array=new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六"); var d=new Date(); var year=d.getFullYear(); var month=d.getMonth()+1; var day=d.getDate(); var week=d.getDay(); var h=d.getHours(); var mins=d.getMinutes(); var s=d.getSeconds(); if(month<10) month="0" + month if(day<10) month="0" + day if(h<10) h="0" + h if(mins<10) mins="0" + mins if(s<10) s="0" + s var shows="现在时间是:" + year + "-" + month + "-" + day + " " + h + ":" + mins + ":" + s + " " + w_array[week]; document.getElementById("date").innerHTML = shows; setTimeout("getdates()",1000); } getdates(); </script> </body> </html>
浙公网安备 33010602011771号