Node-Webkit配合HTML5实现拍照功能
因工作原因,最近在使用Node-Webkit做一个桌面高拍仪(摄像头)应用。这个应用本身也只是一个尝试性的东西,不太具有参考价值,就不在这里提供下载了。
因工作原因,最近在使用Node-Webkit做一个桌面高拍仪(摄像头)应用。这个应用本身也只是一个尝试性的东西,不太具有参考价值,就不在这里提供下载了。
一直以来,undefined
都不是 JavaScript 的关键字或保留字,这意味着我们可以修改 window.undefined
的值。由于 undefined
会被频繁调用作为比较运算的操作数等原因,修改 undefined
的值是有弊端的,所以在 ES5 规范之后,window.undefined
被定义为不可写、不可配置的属性。
数组(Array)是JavaScript最常用类型之一。初学者也最容易将数组(Array)和对象(Object)混淆,而且和其它语言中的数组又有着相当大的区别。作为一位初学者,为了能理清楚数组,把自己学习过程中做了一些笔记。
很多时候我们需要对JavaScript中数据类型(Function
、String
、Number
、Undefined
、Boolean
和Object
)做判断。在JavaScript中提供了**typeof
**操作符可以对这些常用的数据类型做判断。但要使用typeof
来判断数据是不是一个数组,就不起作用了。那在实际生产中要如何来检测数据是不是一个数组呢?
JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型。在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操作数组(比如删除当前项,则所有之后的数组元素下标都将向前移动)是一件很危险的事情。JavaScript的数组是一个拥有堆栈和队列自身优点的global
对象。也就是说JavaScript数组可以表现的像栈(LIFO)和队列(FIFO)一样操作。这也是JavaScript数组强大的可操作性的体现。
在实际的业务当中,很多时候要对定义好的数组重新排序。在JavaScript中自带了两个方法,可以对数组进行排序操作。这两个方法就是sort()
和reverse()
。今天就来学习这两个方法相关的知识。
JavaScript为操作已经包含在数组中的项提供了很多方法。比如push()
、pop()
、shift()
和unshift()
实现数组的增删操作、sort()
和reverse()
对数组项进行排序操作。今天学习操作数组的其他方法:concat()
、slice()
和splice()
。
众所都之,数组项在一个数组中都有自己的位置。在JavaScript中提供了两个确定数组项位置的方法:indexOf()
和lastIndexOf()
。今天我们主要一起学习这两个方法是如何使用,又是如何查找出数组项在数组中的确切位置。
使用数组总是会碰到数组的遍历(迭代)操作。说到迭代,可能会立马想起for
语句对数组进行迭代。在ES5中新增加了五种遍历方法:forEach()
、every()
、some()
、map()
和filter()
,这五个数组迭代的方法中,其中forEach()
、every()
和some()
方法不生成一个新数组,而filter()
和map()
方法将会生成一个新数组(符合条件)。并且这些方法都会调用指定的函数callbackfn
。那么接下来就一起了解这几个方法的使用。
reduce()
和reduceRight()
两个方法功能都是类似的,可以让数组调用一个回调函数callbackfn
作为累加器。实际上根据这个回调函数,可以实现不同的功能,比如说,对数组项求合;将多个数组合并到一个数组等等。甚至配合数组其他的方法你还可以做更多功能的处理。如果感兴趣的话不仿尝试一二。