二维数组、字符串 API

来源:互联网 发布:mac电脑分享wifi给手机 编辑:程序博客网 时间:2024/06/02 04:00

1 二维数组:数组中的元素,又指向一个新的子数组
何时使用:
1. 存储横行竖列的数据时
2. 分组保存上下级包含关系时

如何创建:
1. 先创建空数组,再初始化元素为子数组

 var data=[];    data[0]=[0,0,0,0];    data[1]=[0,0,0,0];   

何时使用:不确定子数组的个数或内容时
2. 创建时就初始化为二维数组

  var data=[         [0,0,0,0],         [0,0,0,0],         [0,0,0,0],         [0,0,0,0]         ];   

访问每个元素: data[r][c]
越界: 二维数组中,行下标r不能越界,会报错
列下标c越界,返回undefined
遍历: 外层循环遍历行,内存循环遍历当前行中的列

for(var r=0;r<data.length;r++){             for(var c=0;c<data[r].length;c++){                 //当前元素data[r][c]             }         }

2 String:多个字符组成的只读数组

  vs 数组: 访问i位置的字符:str[i]                字符个数: str.length                固定套路: 倒数第n个字符:str[str.length-n]     凡是数组中不直接修改原数组的API,字符串都能用             比如: 从starti位置开始,到endi位置                      截取子字符串:                          `str.slice(starti,endi+1);`                 如果省略第二个参数,一直截到结尾                 两个参数都可以是负数                          其实都执行的length-n

内置对象:ES标准中规定的,由浏览器厂商已经实现的对象

   11个: String Number Boolean  - 包装类型         Array RegExp Date Math         Error         Function Object         Global全局对象(浏览器中被window代替)

包装类型: 专门封装原始类型的值,并提供对原始类型值操作的API
为什么: 原始类型的值本来没有任何方法和属性
如何使用:通常只要对原始类型的值调用方法或属性时
都会自动创建对应类型的包装类型对象,封装原始类型值。其实调用的是包装类型对象的方法。
调用后,自动释放!
为什么null和undefined不能. : 没有对应的包装类型

转义字符: 字符串中表示特殊功能的字符
1. 表示特殊功能: \n 换行 \t制表符
2. 将和js语法冲突的特殊符号转为原文: \特殊符号
比如:console.log("c:\window\temp")

  1. 字符串API
    1. 大小写转换: 将字符串中每个英文字符,统一转为大写或小写。
      何时使用: 不区分大小写时
      如何使用:将要比较的双方统一转为大写或小写后再判断。
      所有API都无权修改原字符串,只返回新字符串
  2. 大小写转换:
    str=str.toLowerCase(); //全转小写
    str=str.toUpperCase(); //全转大写

  3. 获得指定位置的字符或字符的unicode号
    获得指定位置的字符: str[i]
    var char=str.charAt(i)
    获得指定位置的字符的unicode号:
    var unicode=str.charCodeAt(i);//返回num
    将unicode反向转回字符:
    var char=String.fromCharCode(unicode)

  4. 检索关键词: 在字符串中找到指定关键词的位置
    var i=str.indexOf("关键词"[,fromi])
    从fromi位置开始,查找右侧下一个关键词的位置下标
    如果省略fromi,默认从0位置开始找
    var i=str.lastIndexOf("关键词"[,fromi])
    从fromi位置开始,找前一个关键词的位置下标
    如果省略fromi, 默认从最后位置开始先前找
    如果找不到,都返回-1

  5. 截取子字符串:
var subStr=str.slice(starti,endi+1);               str.substring(starti,endi+1);//               substring是专用于字符串的截取,但不支持负数参数                  如果时从末尾第n个开始截取,()为(倒数第n,length-n)               str.substring(starti,n)//第二个参数不是endi而是直接为n的时候则                  从starti开始截n个,不考虑含头不含尾

3 分隔字符串:
var subs=str.split("分隔符");
将str,按指定的分隔符,切割为多段子字符串
返回值: 由子字符串组成的数组
切割后的结果中,不包含分隔符
固定套路: 将字符串打散为字符数组:
var chars=str.split("")

原创粉丝点击