首页 > 代码库 > 数学数学

数学数学

从小数学不好。

现在每次看到Math对象里面的方法,脑子就闪过一道白光:这方法是干什么来着?

貌似以前只用过ceil,floor,random,round

floor(),取最小值

ceil(),取最大值

round(),取最近值,正好一半(0.5)的时候,取最大值

random(),不用说,范围是0到1之间小数

今天遇到 Math.abs(),取的是绝对值

没用过的

max(,) 和 min(,)是比较后取两位中大的和小的

在js中的所有类型都是弱数据类型,也就是说不管什么类型都是用var 声明,具体是什么类型就看你给它付什么值。

有时候为了逻辑判断,会用数字与布尔型直接运算。

比如:

carousel.prototype = {    glue: false,    var totalMoved = this.vertical ? ((this.dy % this.myDivHeight) / this.myDivHeight * 100) * -1 : ((this.dx % this.myDivWidth) / this.myDivWidth * 100) * -1; // get a percentage of movement.    touchMove: function(e) {        if (!this.okToMove) {            oldStateOkToMove = this.okToMove;            this.okToMove = this.glue ? Math.abs(totalMoved) > this.glue && Math.abs(totalMoved) < (100 - this.glue) : true;            if (this.okToMove && !oldStateOkToMove) {                $.trigger(this, "movestart", [this.el]);            }        }}

测了一下:

此处可见,--执行的时候,glue还是0,执行过后,glue才变成-1的。

js有什么不明白的,算不清楚的,都可以在console里面测一测!这也是学习的诀窍之一。

前面的例子中还有一句很长很长的:

var totalMoved = this.vertical ? ((this.dy % this.myDivHeight) / this.myDivHeight * 100) * -1 : ((this.dx % this.myDivWidth) / this.myDivWidth * 100) * -1; 

注释说是把运动距离取成百分比,用到运算符%

%求余数 (保留整数)x=5%2x=1

这也是除了加减乘除以外唯一的算数运算符了,要牢记。

另外,三目运算符比较长,也要明确  ?前面是条件,问号后面是true和false的分别取值。

数学数学