引用类型

方括号语法的主要优点是可以通过变量来访问属性,如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。

检测数组:instanceof操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。

栈:push、pop;队列:push、shift;反向:unshift、pop;

sort()方法会调动每个数组项的toString方法,然后比较得到的字符串,sort()方法可以接收一个比较函数作为参数(升序:a - b;降序:b - a;)。

如果slice方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置。如果结束位置小于起始位置,则返回空数组。

indexOf/lastIndexOf:第一个参数为要查找的值;第二个参数表示从哪个位置开始搜索。这两个方法在比较第一个参数与数组中的每一项时,会使用全等操作符;所以上述两种方法判断不了数组中NaN的位置,因为NaN不等于任何值,包括自身。

解决办法:

let index = [1,2,3,NaN].findIndex(item => isNaN(item))

Function构造函数:可以接收任意数量的参数,但最后一个参数始终都被看成是函数体,而前面的参数则枚举了新函数的参数。

为了便于操作基本类型值,ECAMScript提供了3个特殊的引用类型:Boolean、Number、String。每当读取一个基本类型的值的时候,后台就会自动创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。过程如下:

  1. 创建String类型的一个实例
  2. 在实例上调用指定的方法
  3. 销毁这个实例

引用类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码执行的瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。

str.substring(start,end):第一个参数指定子字符串的开始位置,第二个参数指定的是子字符串最后一个字符后面的位置。

str.substr(start,n):第二个参数指定的则是返回的字符数。

str.localeCompare(str1):比较两个字符串,返回值-1,0,1

str.charAt(i);

str.charCodeAt(i);

str.codePointAt(i)

String.fromCharCode(num);

String.fromCodePoint(num);

posted @ 2020-08-11 15:52  671_MrSix  阅读(153)  评论(0编辑  收藏  举报