方括号语法的主要优点是可以通过变量来访问属性,如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。
检测数组:instanceof操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。
栈:push、pop;队列:push、shift;反向:unshift、pop;
sort()方法会调动每个数组项的toString方法,然后比较得到的字符串,sort()方法可以接收一个比较函数作为参数(升序:a - b;降序:b-a;)。
如果slice方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置。如果结束位置小于起始位置,则返回空数组。
indexOf/lastIndexOf:第一个参数为要查找的值;第二个参数表示从哪个位置开始搜索。这两个方法在比较第一个参数与数组中的每一项时,会使用全等操作符;所以上述两种方法判断不了数组中NaN的位置,因为NaN不等于任何值,包括自身,解决办法:使用数组的includes方法可以判断数组中是否包含,然后遍历使用isNaN方法得到位置下标。第二个参数表示从哪个位置开始搜索。
Function构造函数:可以接收任意数量的参数,但最后一个参数始终都被看成是函数体,而前面的参数则枚举了新函数的参数。
为了便于操作基本类型值,ECAMScript提供了3个特殊的引用类型:Boolean、Number、String。每当读取一个基本类型的值的时候,后台就会自动创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。过程如下:
- 创建String类型的一个实例
- 在实例上调用指定的方法
- 销毁这个实例
引用类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码执行的瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。
substring(start,end):第一个参数指定子字符串的开始位置,第二个参数指定的是子字符串最后一个字符后面的位置。
substr(start,n):第二个参数指定的则是返回的字符数。
localeCompare(str1,str2):比较两个字符串,返回值-1,0,1
charAt();charCodeAt();fromCharCode();