从小数学不好。
现在每次看到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%2 | x=1 |
这也是除了加减乘除以外唯一的算数运算符了,要牢记。
另外,三目运算符比较长,也要明确 ?前面是条件,问号后面是true和false的分别取值。
时间: 2024-11-07 22:19:27