2018年2月24日学习总结

时间:2022-12-22 21:37:58

1.数据类型转换:

(a)通过 + 或者tostring转化字符串

1 <script>

2     var x = 2;

3     var y = "5";

4     var a = x+y;

5     alert(x+y);//输出字符串25,只有数值之间相加才会输出数值

6     var z = a.toString();

7     alert(z);

8 </script>

 

(b)parseInt 其他类型转化为整型

1 <script>

2     var b = 3.14;

3     var c = parseInt(b);//浮点转整型

4     alert(c);

5 </script>

(c)parseFloat 其他类型转化为浮点型

1 <script>

2     var d = 4;

3     var e = parseFloat(d);//整型转浮点

4     alert(e);

5 </script>

(d)字符串强转数值

 

<script>

    var f = "yes";
   var g = "123";

    alert(parseInt(f));//返回NaN即 not a number 字母无法强转数值

   alert(parseInt(g));//返回123

</script>

 

2.字符串常用操作:

 

 1 <script>

 2     var str ="who is your daddy";

 3     alert(str.length);//返回字符串长度,含空格

 4     alert(str.charAt(4));//注意,不算空格

 5     alert(str.toUpperCase());//全部转为大写,toLowerCase

 6    alert(str.indexOf("a"));//返回字符下标位置,从0开始,注意加双引号,否则返回-1

 7    alert(str.indexOf("d",13));//从第13位开始第一次出现d的下标位置

 8    alert(str.lastIndexOf("d"));//字符出现的最后一个下标位置

 9     alert(str.substring(4));//从第四位开始截取的字符串

10    alert(str.substring(4,15));//从第4位截取到15位

11    alert(str.slice(4));//效果同substring

12    alert(str.replace("o","a"));//字符串替换

13    alert(str.match("f"));//匹配得到显示,匹配不到返回null

14    alert(str.search("f"));//搜索并返回下标位置,没有返回-1

15     var m = "5.5";

16     var n = 2;

17    alert(m-n);//数学运算 - * / 字符串自动转换为数字,只有运算功能

18    alert(parseFloat(m)+n);//输出7.5 字符串转浮点
  </script>

 

3.正则表达式:

正则表达式是对字符串操作的一种逻辑公式,
就是用事先定义好的一些特定字符、及这些特定字符的组合,
组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

可用于表单检测,验证码检测等。

(a)声明正则表达式的两种方式:

1 <script>

2     var reg1 = /pattern/;//pattern是规则

3     var reg2 = new RegExp("pattern");

4 </script>

(b)正则表达式的两种常用方法:

(1)test()检索字符串中的指定值。返回值是 true 或 false。

(2)exec()检索字符串中的指定值。返回值是被找到的值,如果没有发现匹配,则返回 null。

 

1 <script>

2     var p1 = new RegExp("h");

3     var s = "hello world";

4    alert(p1.test(s));//返回true

5    alert(p1.exec(s));//返回h

6 </script>

 

 (3)常用通配符:

. 匹配所有字符
\d 匹配 0-9  \D 匹配非数字

\s匹配所有空白符,包括空格、制表符、换行符、回车符等 
\S匹配所有非空白字符

\w匹配所有单词字符,包括0-9数字、26个英文字母和下划线
\W匹配所有非单词字符

\b匹配单词边界 \B匹配非单词边界

[abc]查找方括号之间的任何字符
[^abc]查找任何不在方括号之间的字符

[0-9]查找0-9之间的数字

[a-z]查找a-z之间的小写字母

[A-Z]大写A-Z [A-z]大写A到小写z,既涵盖所有26个字母的大小写

(red|blue|green)查找任何指定的选项,例如邮箱.com .cn .org

 

 1 <script>

 2     var i ="Just do it";

 3     var o =/d/;

 4     alert(o.test(i));

 5     var u =/a$/;

 6     alert(u.test(i));

 7     var n =/\d/;

 8     alert(n.test(i));

 9     var nn =/\D/;

10    alert(nn.test(i));

11     var nl = /\W/;

12    alert(nl.test(i));

13     var ab = /[a-b]/;

14    alert(ab.test(i));

15     var tp = /[^j]/;

16    alert(tp.test(i));

17 </script>

 

(4)常用量词:

n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为n的字符串
n+ 匹配任何包含至少一个n的字符串
n* 匹配任何包含零个或多个n的字符串
n? 匹配任何包含零个或一个n的字符串
n{X} 匹配包含X个n的序列的字符串 (序列为连续的意思)
n{X,Y} 匹配包含X或Y个n的序列的字符串
n{X,} 匹配包含至少X个n的序列的字符串

 

 1 <script>

 2     var wr ="hEllo world";

 3     var n1 =/a+/;

 4     var n2 =/o*/;

 5     var n3 =/o?/;

 6     var n4 =/l{3}/;//包含连续3个l的字符串 false

 7     var n5 =/l{2,3}/;//包含连续2个或3个l的字符串 true

 8     var n6 =/o{2,}/;//包含至少连续2个o

 9     var n7 =/d$/;

10     var n8 = /^h/;

11    alert(n6.test(wr));

12 </script>

 

(5)修饰符:

i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

 

 1 <script>

 2     var n9 =/e/i;

 3     alert(n9.test(wr));

 4     var n10 =/l/g;

 5     for(i=0;i<wr.length;i++){

 6          fl = n10.exec(wr);

 7         if(fl ==null){

 8         break;

 9         }

10        document.write(fl);

11     }

12 </script>   

 

(6)综合运用:

设置一个邮箱名输入规则:

 

1 <script>

2     var em = "84751s@126.com";

3     var email = /^[0-9A-z_-]+@[0-9A-z_-]+\.+[com|cn|org]+$/;
//以数字、大小写字母、下滑线、短杠开头 + @数字、大小写字母、下滑线、短杠+ . + com|cn|org结尾 \.可使.变为普通字符串

4// ^  +& 以...开头和以...结尾,用于字符串拼接

5    alert(email.test(em));

6 </script>

 

4.数组:

 

 1 <script>

 2     var arr1= [2,5,6];//定义时直接给数组元素赋值

 3     var arr2= [];//定义一个空数组

 4     var arr3= new Array();//定义一个空数组并通过索引来赋值

 5     arr3[0] = 1;//数组下标由0开始

 6     arr3[3] = "abc";

 7     arr2[0] = 9;

 8     arr2[1] = 3;

 9     alert(arr1.length);//数组的length是数组内数据的个数

10     数组长度可变。总长度等于数组的最大索引值+1

11     同一数组中的元素类型可以互不相同

12    alert(arr3[2]);//当访问未赋值的数组元素时,该元素值为undefined,不会数组越界

13     var arr4 = [1,2,"a","b"]

14     for(x in arr4){//for in遍历数组

15        document.write(arr4[x]);

16     }

17     for(i=0;i<arr4.length;i++){//for循环遍历数组

18        document.write(arr4[i]);

19     }

20     for(i=0;i<10;i++){

21        document.write(i+"<br/>");

22     }

23 </script>

 

5.运算符:

 

 1 <script>

 2     var a =52%10;//  %取余运算  = 赋值 从右向左赋值

 3     document.write(a);

 4     //三目运算,返回布尔值,可用 if else 取代

 5     var b =2;

 6     var c =4;

 7     b<c?alert("c大"):alert("b大");
    if(b<c){
      alert("c大");
    }
    else{
      alert("b大");
    }

 8     // , 运算符 使其等于最后一个值

 9     vare,f,g,h;

10    a=(e=2,f=5,g=0,h=2);

11    alert(a);

12     //void运算符

13     var e,f,g,h;

14     a=void(e=2,f=5,g=0,h=2);

15    alert(a);//a为未定义

16     //获取数据类型

17    alert(typeof(b));//返回变量数据类型 number

18     //instanceof 判断对象类型,返回布尔值

19     var k = [1,2,3];

20    alert(k instanceof Array);

21 </script>