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

更多文章:


repercussions(都是余波,repercussions和aftermath有什么区别啊)

repercussions(都是余波,repercussions和aftermath有什么区别啊)

今天给各位分享都是余波,repercussions和aftermath有什么区别啊的知识,其中也会对都是余波,repercussions和aftermath有什么区别啊进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 09:00

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

本篇文章给大家谈谈dropdownlist 绑定,以及DropDownList 绑定所有项 并 显示指定项对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 08:50

协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

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

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

最近更新

repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026-10-11 09:00:05 浏览:0
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026-10-11 08:50:04 浏览:0
majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
热门文章

标签列表