js案例100讲解(js定时器怎么解读 &&是并且吗alpha > 100 && (alpha =100);什么意思)

:暂无数据 2026-06-29 21:30:02 :0

js案例100讲解(js定时器怎么解读 &&是并且吗alpha > 100 && (alpha =100);什么意思)

大家好,今天小编来为大家解答以下的问题,关于js案例100讲解,js定时器怎么解读 &&是并且吗alpha > 100 && (alpha =100);什么意思这个很多人还不知道,现在让我们一起来看看吧!

本文目录

js定时器怎么解读 &&是并且吗alpha > 100 && (alpha =100);什么意思

Logical Operator(逻辑运算符)

&& (Logical AND)

如果第一个表达式可以被转换成 false,则返回第一个表达式,否则返回第二个表达式

(Logical OR )

如果第一个表达式可以被转换成 true,则返回第一个表达式,否则返回第二个表达式


因为逻辑表达式都是从左到右解析的,所以他们实现了一个规则叫短路求值(Short-Circuit Evaluation).


doSomething() && doSomethingElse() 相当于 下面代码:

if( doSomething() ) {
    doSomethingElst();
}

doSomething() || doSomethingElst() 相当于:

if( !doSomething() ) {
    doSomethingElse();
}

 在你这个案例中, alpha 》 100 && ( alpha = 100 ); 就相当于:

if( alpha 》 100 ) {
    alpha = 100;
}

同时,因为 && 前后必须是表达式,alpha = 100 并不是表达式,所以需要加括号。

JS基于面向对象实现的拖拽库实例

本文实例讲述了JS基于面向对象实现的拖拽库。分享给大家供大家参考。具体如下:
这是一个面向对象的JS拖拽库,可设置水平锁定、垂直锁定、锁定位置、锁定范围等,设定这些范围后,只能在设定的模式下拖动,我觉得这是个挺不错的拖拽实例。
运行效果截图如下:
在线演示地址如下:

求js大牛解惑!一个很有趣的问题: “0.14“*100 = 14.000000000000002 “ , 而 0.13“*100 = 13;

这个问题挺复杂的,以前看过一次,但没太看懂,这次整理了一下。有兴趣的同学可以看看。
首先打印出0.14和0.14*100的二进制(程序见参考):
0.14 : 0 01111111100 0001111010111000010100011110101110000101000111101100
0.14*100 : 0 10000000010 1100000000000000000000000000000000000000000000000001
14.0 : 0 10000000010 1100000000000000000000000000000000000000000000000000
我们可以看到0.14的小数部分出现循环,就像10/3 = 1.33333…一样,所以0.14是有精度丢失的,
比较0.14*100和14.0,0.14*100多了最后一位1。

Java遵循IEEE 754标准来支持浮点数的操作,结合浮点值0.14,我们来看一下,1) 0.14的二进制格式
0 01111111100 0001111010111000010100011110101110000101000111101100.
根据IEEE 754标准,

注:S:符号(0正1负),E,指数,M小数部分。
对0.14格式化后的结果是:
S(1位) E(11位) M (52位)
0 01111111100 0001111010111000010100011110101110000101000111101100
根据计算公式:

我们可以得到e = 01111111100 – 1023 = 1020 – 1023 = -3
m = 1 (隐藏位) + 0.0001111010111000010100011110101110000101000111101100 = 1 +
Long.valueOf(“0001111010111000010100011110101110000101000111101100“, 2)/ (Math.pow(2, 52) – 1)
= 1.12000000000000013
n = 1.12000000000000013 *2^-3= 1.12000000000000013/8 约 0.14
接下来,第二个问题,2)为什么0.14 * 100 输出14.000000000000002?
由上可知0.14是不精确的,乘100只会扩大这个不精确度。具体的计算过程如下:
100的浮点二进制:
0 10000000101 1001000000000000000000000000000000000000000000000000
跟据浮点乘法规则指数相加,小数相乘,得到
0.14 * 100 =
2^(6-3) //100的指数是6,0.14的指数是-3
*
(1. 1001000000000000000000000000000000000000000000000000*
1. 0001111010111000010100011110101110000101000111101100) //小数部分
= 2^(6-3) * (1 + 0.1001000000000000000000000000000000000000000000000000 +
0.0001111010111000010100011110101110000101000111101100 +
0. 1001000000000000000000000000000000000000000000000000 * 0. 0001111010111000010100011110101110000101000111101100
//方便计算,分解乘数(同1.1 * 1.1 = 1 + 0.1 * 1 + 1 * 0.1 + 0.1*0.1)
这部分我用计算器计算,貌似精度丢失更严重,但可以得知小数部分依然是循环,而不能精确表达。同时,通过查看JDK中Double.toString(d)方法,我们可以看到SUN实现的浮点输出方法。所以最后打印在页面的是14.000000000000002而不是14.0.

故,浮点是用有限二进位接近表达一个数值,不精确是常态,使用要慎重

参考(强烈推荐)
IEEE 754 浮点数的表示精度探讨
http://www.cnblogs.com/bossin/archive/2007/04/08/704567.html
解读IEEE标准754:浮点数表示
http://www.linuxsir.org/bbs/thread262207.html
浮点乘法计算
http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/BinMath/multFloat.html
打印DOUBLE二进制方法:
public class DoubleTest {
@Test
public void test(){
System.out.println(“0.5 : “ + this.dumpDouble(0.5));
System.out.println(“0.14 : “ + this.dumpDouble(0.14));
System.out.println(“0.14*100 : “ + this.dumpDouble(0.14 * 100));
System.out.println(“14.0 : “ + this.dumpDouble(14.0));
System.out.println(“100 : “ + this.dumpDouble(100));

Assert.assertEquals(“100.0%“, getPercentage(0.9999, 2));
Assert.assertEquals(“100%“, getPercentage(0.9999, 1));
Assert.assertEquals(“99.9%“, getPercentage(0.999, 2));
Assert.assertEquals(“10.1%“, getPercentage(0.101, 2));
Assert.assertEquals(“10.2%“, getPercentage(0.1015, 2));
Assert.assertEquals(“11.0%“, getPercentage(0.1095, 2));
Assert.assertEquals(“0.11%“, getPercentage(0.0011, 3));

final int TOTAL = 100000;
double data = new double[TOTAL];

for(int i = 0; i 《 TOTAL; i++ ){
data[i] = Math.random();
}

//通过FORMAT,获得百分比,忽略精度
DecimalFormat f = new DecimalFormat(“0.##’.0’%“);
long start = System.currentTimeMillis();
for(int i = 0; i 《 TOTAL; i++ ){
f.format(data[i]);
}
long end = System.currentTimeMillis();
System.out.println(“0 time: “ + (end - start));

//基于字符计算百分比
start = System.currentTimeMillis();
for(int i = 0; i 《 TOTAL; i++ ){
this.getPercentage(data[i], 2);
}
end = System.currentTimeMillis();
System.out.println(“1 time: “ + (end - start));
}

public String dumpDouble(double d) {
StringBuilder b = new StringBuilder();
String bString = Long.toBinaryString(Double.doubleToLongBits(d));

int fillZeros = 64 - bString.length();
for(int i = 0; i 《 fillZeros ; i++){
if(i == 1){
b.append(’ ’);
}
b.append(’0’);
}

for(int i = 0; i 《 bString.length(); i++ ){
if((i + fillZeros) == 1 || (i + fillZeros) == 12){
b.append(’ ’);
}
b.append(bString.charAt(i));
}

return b.toString();
}

char next = {’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’0’,};
public String getPercentage(double d, int precision){
StringBuilder b = new StringBuilder(Double.toString(d * 100));
int dot = b.indexOf(“.“);
if(dot 》 0 && dot + precision 《 b.length()){
char c = b.charAt(dot + precision);
//四舍五入
if(c 》 ’4’){
int j = dot + precision - 1;
if(j == dot) {
//跳过小数点
j --;
}
char n = next[b.charAt(j) - ’0’];
b.setCharAt(j, n);
//向前进1
while(n == ’0’ && j 》 0){
j --;
if(j == dot) {
//跳过小数点
j --;
}
//+1
n = next[b.charAt(j) - ’0’];
b.setCharAt(j, n);

}
if(j == 0){
b.insert(0, 1);
dot++;
if(precision == 1){
b.setCharAt(dot, ’%’);
return b.substring(0, dot + 1);
}else{
b.setCharAt(dot + precision, ’%’);
return b.substring(0, dot + precision + 1);
}
}
}
b.setCharAt(dot + precision, ’%’);
return b.substring(0, dot + precision + 1);
}
b.append(“%“);
return b.toString();
}

使用原生JS操作网页的几个例子

原生js操作网页

emmm

  1. 添加网页元素

  2. 移除网页元素

代码

《!DOCTYPE html》
《html lang=“en“》
《head》
    《meta charset=“UTF-8“》
    《title》Title《/title》
《/head》
《style》
    div{
        border: 1px solid black;
        width: 100px;
        height: 100px;
        text-align: center;
    }
《/style》
《body》
《div》div1《/div》
《div》div2《/div》
《script》
    var div = document.createElement(“div“);
    div.innerText = “这是使用js添加的元素“;
    //添加一个div元素
 document.body.appendChild(div);
    alert(“3秒后移除div1“);
    //移除html元素
 setTimeout(function () {
        var divList = document.getElementsByTagName(“div“);
        divList.remove();
    },3000);
《/script》
《/body》
《/html》

这两个很基础,其实所有其他js库(jquery之类的)能做的事情原生js都能做。

关于本次js案例100讲解和js定时器怎么解读 &&是并且吗alpha > 100 && (alpha =100);什么意思的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

js案例100讲解(js定时器怎么解读 &&是并且吗alpha > 100 && (alpha =100);什么意思)

本文编辑:admin

更多文章:


issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)

issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)

各位老铁们,大家好,今天由我来为大家分享issued retroactively,以及FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站

2026年10月15日 10:30

f发音是什么?printf的返回值是什么

f发音是什么?printf的返回值是什么

大家好,关于f很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于f发音是什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月15日 10:10

begin和start的区别(start与begin的区别)

begin和start的区别(start与begin的区别)

其实begin和start的区别的问题并不复杂,但是又很多的朋友都不太了解start与begin的区别,因此呢,今天小编就来为大家分享begin和start的区别的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月15日 09:20

vant官网中文(范特365 是韩国化妆品VANT36.5吗)

vant官网中文(范特365 是韩国化妆品VANT36.5吗)

大家好,今天小编来为大家解答以下的问题,关于vant官网中文,范特365 是韩国化妆品VANT36.5吗这个很多人还不知道,现在让我们一起来看看吧!

2026年10月15日 09:10

特殊字符是指什么?正则表达式中一些特殊字符的用法

特殊字符是指什么?正则表达式中一些特殊字符的用法

大家好,特殊字符相信很多的网友都不是很明白,包括特殊字符是指什么也是一样,不过没有关系,接下来就来为大家分享关于特殊字符和特殊字符是指什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

2026年10月15日 08:10

特殊符号网名大全花样符号(特殊符号昵称有哪些)

特殊符号网名大全花样符号(特殊符号昵称有哪些)

本篇文章给大家谈谈特殊符号网名大全花样符号,以及特殊符号昵称有哪些对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月15日 07:30

prison break(越狱(prison break)到底是在讲个什么)

prison break(越狱(prison break)到底是在讲个什么)

各位老铁们好,相信很多人对prison break都不是特别的了解,因此呢,今天就来为大家分享下关于prison break以及越狱(prison break)到底是在讲个什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2026年10月15日 06:50

c程序设计第五版教学视频(求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!)

c程序设计第五版教学视频(求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!)

各位老铁们,大家好,今天由我来为大家分享c程序设计第五版教学视频,以及求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动

2026年10月15日 06:40

电脑教程入门(电脑初学入门)

电脑教程入门(电脑初学入门)

本篇文章给大家谈谈电脑教程入门,以及电脑初学入门对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月15日 06:20

十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)

十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)

“十六进制转二进制表”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)!

2026年10月15日 06:10

最近更新

issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)
2026-10-15 10:30:03 浏览:0
如何制作短视频(短视频怎么制作)
2026-10-15 10:20:11 浏览:0
f发音是什么?printf的返回值是什么
2026-10-15 10:10:03 浏览:0
免费网站做seo(个人网站如何做SEO)
2026-10-15 09:30:11 浏览:0
热门文章

标签列表