[置顶] js中数组Array和字符串String的属性方法归纳总结

时间:2021-02-20 22:05:57
1、数组创建:
       new Array(5)-->创建有5个元素的数组;
       new Array()-->创建空数组;
       
new Array("a","b","b")-->创建有3个元素,分别为abc的数组; 
       []
-->创建空数组;
        [
"a","b","b"]-->创建有3个元素,分别为abc的数组;
注意:new Array(5); 为创建一个有五个元素的数组; new Array(5,3); 为创建一个有两个元素的数组,且内容为5和3
2、数组的方法:
      
arr1.concat(arr2)  -->   concat()连接数组1和数组2返回连接后得新数组;
      
arr.join(".")  -->   join()以它的参数字符串符号来连接数组的元素,返回连接后得字符串;
      
arr.slice(start,end) -->slice(1,5) 获取数值之间的arr元素,返回一个新的数组,1(包括)为初始元素,5为结束元素(不                                 包括),本例获取的是arr的第2,3,4,5个元素,不包括第6个元素,若没给第2个参数则返回包括1在内的后面所有元 素,若只有一个参数并且       为负数的话,返回的是从数组尾部截取这个负数;
      arr.push(ele1,ele2..),arr
数组的末尾添加一个或多个元素,并返回新的长度
      arr.unshift((ele1,ele2..),arr数组的开头添加一个或更多元素,并返回新的长度
      arr.pop(),从arr中移除最后一个元素,并且返回它删除的元素(最后一个)的值。如果aar已经为空,则 pop() 不改变数组,并返回 undefined 值。
      arr.shift(),从arr中移除第一个元素,并且返回它删除的元素(第一个)的值。如果aar已经为空,则 pop() 不改变数组,并返回 undefined 
      arr.reverse(),颠倒数组中元素的顺序.
     arr.
splice(index,length,newItem1,newItem2,......) ,方法向/从数组中添加/删除项目,然后返回被修改后得到的新数组。index为指定的要移除或添       加的位置处,可为负值,负值的话是从后1开始计算不是0,length为删除包括index在内的后面几个数组元素,newItem为在删除处添加的新数组元素,       可选项;
     arr.valueOf() ,返回数组相同的元素组成的新数组;
     [1,2,3]===[1,2,3]返回false, 
[1,2,3]==[1,2,3]返回false, 因为数组也是引用类型,不是基本(值)类型,相同的数组体却是不同        的对象,一个是放在栈里,一个是放在堆里
     
arr.indexOf(item,(可选start))返回数组的的索引值,item为数组的元素,start表示从数组的哪个位置开始向后查找,没有找    到,则返回-1 
     
arr.lastIndexof(item,(可选start))从数组的后面开始查找返回数组的的索引值,item为数组的元素,start表示从数组的哪个位置开始    向前查找,没有找到,则返回-1 
     数组的属性:
     arr.constructor返回arr的构造函数---function Array(){native code};
     arr.length返回数组的长度;
     
Array.prototype[name]数组原型,可以向Array原型链添加属性或方法。 
3、字符串
    字符串属性同数组;
    
str.charAt(index)返回str索引为index数值的单个字符,index为空则默认为0,没有找到返回空字符串;
    str.charCodeAt(
index)返回str索引为index数值的单个字符的unicode(统一码),index为空则默认为0,没有找到返回NaN;
    
str1.concat(str2)字符串连接,两个字符串连接用空格隔开,返回新连接的字符串;
    str.
fromCharCode(n1,n2,n3...)返回nx(unicode)所对应的单个字符,多个则连续转换对应字符,没转换成功把对应的统一码转换成   空字符串;
    
str.indexOf(str1)返回子字符串str1在查找字符串str中第一次出现的位置,没有找到则返回-1,; 
    
str1.localeCompare(str2)判定两个字符串排序,如果str1排在str2,之前那么返回-1,之后返回1,相等返回0;
    str.match(regexp)在str中匹配正则,以数组形式返回匹配到的字符串
    str.
replace(old,new) 在字符串str中查找old字符串(可以是正则),用new字符串来替换;返回替换后的新字符串;
    
str.search(str1) 在字符串str中查找str1,返回第一次出现str1的位置,没有找到返回-1;
    str.
slice(start,end(可选))  返回start和end数值下标之间的字符串.end为空返回start后全部字符串;
    
str.split(" ")把str用split方法中的符号为间隔切割字符串返回一个数组;
    
str.substr(start,length(可选))返回以start下标开始以length为长度之间的字符串,若length为空,则返回下标后得全部字符  串;
    
str.substring(start,end)一个参数的话返回下标后所有字符串,两个参数的话,以小的为开始以大的为结束,返回量下标之间的字符   串 ;
    str.toString()str或obj返回字符串对象;
    str.trim()除去str两端的空格,返回去空格的字符串,不支持IE8及前面版本; 
    
str.valueOf() 返回str原始值;
    
str.toUpperCase()把str字母全部转成大写;
    
str.toLowerCase()把str字母全部转成小写; 
    str.
toLocaleUpperCase()以本地方式把str字母全部转换成大写;
    str.toLocaleLowerCase()以本地方式把str字母全部转换成小写; 
4、函数名与变量名相同的话,函数声明可以覆盖未赋值的变量,但不能覆盖已赋值的变量, 调用该与变量名相同的函数会报错;arguments[i]可以改变函数传进来的形参(局部变量);(function(){alert(this)}).call(null/undefined)//this为window;任何全局变量都为window对象的属性,在判断一个未声明的变量时会输出undefined,IE会报错,在判断一个对象未声明的属性时都会输出undefined,变量声明会被提升,但赋值不会被提升;
5、操作符的二义性,[  ]  创建数组,属性或数组下标读取寸;{ }对象声明,函数直接量声明,复合语句,结构语句限定如winth(){},swith(){},try{}catch()      {};, 连续运算符,数组或json元素分割符,函数形参分隔符;+字符串连接符,数值运算符,增值运算符;()函数执行运算符,优先级强制运算符,参数声明;;空语句;:冒号,标签声明,三目中条件为false的表达式分支,对象成员声明,switch分支;
6、比较:
     空字符串与数字比较,空字符串会转换为0,false转换为0,,true转换为1,true>false;两个引用类型是不相等的比较总是返回false;数     字对象引用类型比较由数字对象的值决定,两个字符串比较时,会使用字符串的localeCompare()方法进行比较,字符串为数字类型字符串时与数字比较, 将转换成数字比较,将字符串转换得到的是NaN时怎么比较都为false,NaN不等于它本身;undefined会转换为false,空字符 串为false;Null为false;null==null为true;null===undefined为false;null==undefined为true;