建立Object
对象有两种方式:javascript
new Object()
对象字面量表示法定义对象时,实际上不会调用Object的构造函数(Firefox2及更早版本除外)前端
建立Array
对象有两种方式:java
new Array()
instanceof
操做符的不足:windows
若是同个WEB页面存在多个框架,框架1里建立一个数组array
,在框架2中用instanceof
检测数组array
,返回结果并非true
,而是false
。这是由于array instanceof Array
实际上至关于windows1.array instanceof windows2.Array
数组
Array.isArray()
方法用来检测某对象是否时数组,它的不足之处是部分浏览器版本不支持该方法。浏览器
数组转字符串app
toString()
、toLocalString()
或valueOf()
方法能够将数组转换为字符串,每项以,
分隔框架
自定义分隔符函数
join()
方法,能够指定字符串的分隔符this
反转数组
reverse
方法
sort
方法
该方法默认将每一个元素转为字符串比较大小,较小值在前端。它也能够接受一个比较函数:函数接受两个参数,当返回值为-1时,说明前一项值比后一项值小,当返回值为0时,说明前一项值和后一项值相等,当返回值为1时,说明前一项值比后一项值大
concat
获取当前数组的副本,并在这个副本末尾添加新元素,返回这个副本数组
slice
返回当前数组的一个子序列数组,起始位置必须传入,结束位置是可选参数
splice
操做数组中间的元素,能够实现删除、插入、替换三中操做。它必须传入起始位置、要删除的元素数量两个参数,插入或替换的内容是可选参数
迭代方法接受两个参数:
传入的函数接受三个参数:
reduce()
和reduceRight()
方法,会迭代数组的全部项,而后构建一个最终返回的值。它接受一或两个参数:
被调用的函数接受四个参数:
第一次迭代发生在数组的第二项上,函数返回的任何值都会做为第一个参数自动传给下一项。
var date = new Date()
当不传递参数时,新建立的对象自动得到当前日期和时间。若是想指定日期,则须要传入表示该日期的毫秒数。为了简化这一计算过程,ECMAScript提供了两个方法Date.parse()
和Date.UTC()
将特定的日期转换为毫秒数,再经过Date
构造函数建立新对象。
var time = new Date(Date.parse("May 25,2018")); var time2 = new Date(Date.UTC(2018,10,13,23,22,10));
定义函数有两种方式:
函数声明
function sum(arg1,arg2) { body //函数体 }
函数表达式
var sum = function(args1,arg2) { body //函数体 };
函数声明和函数表达式的差别是解析器读取时间不同。解析器在执行环境中加载数据时,会率先读取函数声明,并使其在执行任何代码前可用,这称为函数声明提高;至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。
arguments
属性
它的主要用途是保存函数参数。arguments
对象的callee
属性,是一个指针,指向拥有这个arguments
对象的函数对象。
this
this
表示调用当前函数的对象。
这三个方法均可以指定this
表示的对象,apply
和call
方法会首先指定this表示的对象,而后再执行当前函数;bind
方法会建立一个函数的实例,其this
值会被绑定到指定的对象上,这个函数不会自动执行,必须再手动调用一次。
var s1 = "some text"; var s2 = s1.substring(2);
当执行流访问到第二行时,首先建立String包装类型的一个实例,而后在实例上调用指定的方法,最后销毁这个实例。
引用类型与基本包装类型的主要区别就是对象的生存期。使用new操做符建立的引用类型的实例,在执行流离开当前做用域以前都一直保存在内存中。而自动建立的基本包装类型的对象,则只存在于一行代码的执行瞬间,而后当即销毁。这意味着咱们不能在运行时为基本类型值添加属性和方法。
内置对象指由ECMAScript实现提供的、不依赖宿主环境的对象,这些对象在ECMAScript程序执行前就已经存在了。这意味着开发人员没必要显示地实例化内置对象,由于它们已经实例化了
在全部代码执行以前,做用域中就已经存在两个内置对象:Global
和Math
。在大多数ECMAScript实现中都不能直接访问Global
对象;不过,Web浏览器实现了承担该角色的windows
对象。全局变量和函数都是Global
对象的属性。