一、全局变量&局部变量
1、定义在脚本片段内的变量叫全局变量
2、封装在函数内的变量叫局部变量
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全局变量/局部变量</title> </head> <body> <script type="text/javascript"> var x=2; for(var x=1;x<5;x++){ alert(x) } //以上情况的变量都是在脚本片段中,是全局变量 function demo(x) { x=8; } //封装在函数(方法)内的变量是局部变量 </script> </body> </html>
二、对象
1、Object对象
toString():将对象变成字符串
2、String对象
表现形式:
Var str = new String(“abc”);
Var str = “abc”;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script type="text/javascript" src="demo.js"></script> <script type="text/javascript"> var str="wetyuii"; println("字符串长度:"+str.length); println(str.bold());//字体颜色加粗 alert(str.bold());//把html的<B>标记放在String对象的文本两端 println(str.fontcolor("red"))//字体颜色 println(str.link("www.baidu.com"))//变成超链接 println(str.substr(1,3));//ety println(str.substring(1,3));//et </script> </body> </html>
执行结果:
3、String自定义功能
js中的方法有限,想要对字符串进行其他操作,需要进行自定义功能
例如:去除字符串首尾的空格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>自定义String</title> </head> <body> <script type="text/javascript"> /*去除字符串首尾空格思路: * 1、定义开始和结尾标记的变量,用于排查首尾空格 * 2、用开始变量排查,如果是空格,进行递增 * 3、用结尾变量排查,如果是空格,进行递减 * * */ function trim(str) { var start,end; start=0; end=str.length-1; //charAt()返回指定位置的字符 while (start<=end && str.charAt(start)==" "){ start++; } while (start<=end && str.charAt(end)==" "){ end--; } //substring()用于提前指定字符串介于两个指定下标之间的字符 return str.substring(start,end+1); } var s = " ab c "; alert("-"+trim(s)+"-") </script> </body> </html>
4、String原型属性prototype:返回对象原型的引用(允许向对象添加属性和方法)
-------->demo.js文件<------ string.prototype.trim=function (str) { var start=0,end=str.length-1; while (start<end && this.charAt(start)==" "){ start++; } while (start<end && this.charAt(end)==" "){ end--; } return str.substring(start,end+1); } -------->html文件<------- <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>prototype</title> </head> <body> <script type="text/javascript" src="demo.js"></script> <script type="text/javascript"> var str = " ab c "; alert("-"+str.trim()+"-") </script> </body> </html>
5、原型练习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>prototypeTest</title> </head> <body> <script type="text/javascript" src="demo.js"></script> <script type="text/javascript" src="stringTools.js"></script> <script type="text/javascript"> /* * 练习1、给字符串添加一个功能,将字符串变成字符数组 * * 练习2、给字符串添加一个功能,将字符串反转 * */ var str = "abcdef"; println(str.toCharArray()); println(str.reverses()); </script> </body> </html> -------->stringTools.js<------- /* * 去除首尾空格 * */ String.prototype.trim=function (str) { var start=0,end=str.length-1; while (start<end && this.charAt(start)==" "){ start++; } while (start<end && this.charAt(end)==" "){ end--; } return str.substring(start,end+1); } /* * 原先属性添加功能,实现字符串转换成字符数组 * */ String.prototype.toCharArray = function () { var cha = []; for(var i=0;i<this.length;i++){ //charAt返回指定位置的字符 cha[i]=this.charAt(i); } return cha; } /* * 将字符串进行反转 * */ String.prototype.reverses = function() { //调用toCharArray方法把字符转换成字符数组 var arr = this.toCharArray(); //将数组位置置换功能进行封装,并定义到了反转功能内部 //函数里面定义函数在js里面是可以的,但是在Java中是不允许的 function swapp(arr,x,y) { var temp = arr[x]; arr[x]= arr[y]; arr[y]= temp; } //遍历字符数组,进行反转 for (var start=0,end=this.length-1;start<end;start++,end--){ swapp(arr,start,end); } //把字符数组转成字符 //join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。 return arr.join(""); }