首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS】527- 关于 JS 浮点计算

原文地址:http://eux.baidu.com/blog/fe/关于js浮点运算 ?...浮点数在计算机存储 IEEE标准 首先科普一下 js使用二进制浮点数算术标准 IEEE_754 他采用存储格式为: E = (-1)^ × M × ^E (-1)^s表示符号位,当s=0,...但是,我们知道,科学计数法 E 是可以出现负数,所以 IEEE 754规定,E真实值必须再减去一个中间数,对于8位E,这个中间数是127;对于11位E,这个中间数是1023。...另外,由于js并没有特别区分整型和浮点型,实际上整型在 js 里面也是用浮点数结构存储,不过放在了尾数部分,以便于在计算过程总能随意自由切换。...那要怎么在 js 尽可能准确计算出结果,以及怎么判断两个小数是否相等呢,敬请期待下回分解~ 参考资料 IEEE_754-1985 how to round binary fractions 浮点数二进制表示

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

关于JSthis指向问题探究

写在前面 本篇文章所有例子来源都是《JS设计模式与开发实践》这本书,写这篇文章之前也去查阅了很多关于this指向问题探讨,包括但不仅仅有像阮一峰老师,还有很多博主帖子,还是决定写这篇文章有以下几个原因...,第一,加深自己理解,重新理一遍关于这方面的知识,第二,我尽可能使用通俗简单说辞进行解释 力求让更多的人明白这个东西,第三,this是js一个关键字,很有必要单独拿出来写一篇文章。...jsthis this jsthis总是指向一个对象,也就是一个obj,但是具体指向是哪一个obj是根据具体运行时函数执行环境动态绑定,而不是函数被声明环境!...,也就是我们常见普通函数使用时候,此时this其实指向是当前全局对象,也就是windows,因为在js全局对象就是windows window.name = "globalName...JS很多别的不好理解概念差不多,用多了就明白了为什么那么写,很多时候我们看到一个错,就知道需要使用let that = this类似这样代码块解决,究其原因是他很理解错误原因吗?

1.4K31

JS关于Date小知识

monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); getMonth()方法: 返回一个0 到 11整数值...根据上面的知识,我们知识了new Date() 第二个参数monthIndex,指就是月份对应索引, 一般比正常月份值少1....而getMonth()方法,刚好也是获取对应索引值,那结果为什么为返回6呢? 运行结果 : 为什么呢?...我们来做下测试,把day对应值改一下, 改个3看看,输出结果为5; 改成36,输出为6; 改成66,输出结果为7 如下图: 总结: 原来,当day值,超过了当前月最大值,最后进行天数相加,而不是直接赋值...; 题中,monthIndex为5,实际为6月,月份只有30天,而当day为31时,多一天,就会加一天,即变成了7月。

2.7K10

js关于this指向训练题

this指向是js开发必须掌握知识,今天我们就用一道题目来看看你基础。 ? 各位认为会输出什么呢?请大家先思考不要直接去运行看答案。 实际上会输出:5和2。...(1):第一行fn(),这个毫无疑问,this指向是window,所以length自然输出5,大家不要看到fn()在obj对象里面调用,就把this认为指向了obj,这是非常错误; this指向谁,...是在于函数执行时环境对象,fn()在执行时,他环境对象依然是window,这里fn()大家可以理解为window.fn(),是这样进行执行。...(2):第二行arguments[0]();大家都知道这个对象是获取函数参数列表,我们调用method一共传入了两个参数,第一个为fn函数,第二个则是10这个数字,arguments[0]则取了fn这个函数变量指针...大家明白了吗,这道题对于this指向还是比较经典题目,如果这道题可以独立做出来,证明this指向这块,你基本上是过关

79810

关于JS作用域中沉思

scope和closure是javascript两个非常关键概念,前者JS用多了还比较好理解而且容易体会到,而closure就不一样了。...弊端 在上面的例子,我们可以看到,with可以很好地帮助我们简化代码。但生产环境却很少见到,事实上并不是少见多怪,主要是不推荐使用,为啥嘞?...但如果引擎在代码中发现了with,它只能简单地假设关于标识符位置判断都是无效,因为无法知道传递给with用来创建新词法作用域对象内容到底是什么。此时引擎所有的优化努力大概率都是无意义。...[const.png] 作用域链 在局部作用,引用一个变量后,系统会自动在当前作用域中寻找var声明语句,如果找到则直接使用,否则继续向上一级作用域中去寻找var声明语句,如未找到,则继续向上级作用域中寻找...在一个函数内部定义函数,闭包中会将外部函数自由对象添加到自己作用域中,所以可以通过内部函数访问外部函数属性,这就是js模拟私有变量一种方式。

86800

关于js回调函数callback

原创作者:Cayley,京程一灯特邀作者 Cayley 一个不断努力学习女程序员 前言 其实我一直很困惑关于js callback,困惑原因是,学习这块看资料少,但是平时又经常见,偶尔复制一下前人代码...这么着,这个callback概念就越来越混乱,因为你总感觉它是你Ajax请求后调用那个函数,又感觉它是你某一个函数形参而已,而当你有一天看到一点关于Node.js代码后你会更加崩溃,因为你会发现很多...1.关于回调函数和js单线程以及js异步机制 我们都知道js是单线程,这种设计模式给我们带来了很多方便之处,我们不需要考虑各个线程之间通信,也不需要写很多烧脑代码,也就是说js引擎只能一件一件事去完成和执行相关操作...2.js单线程浏览器内核多线程 说到js单线程,顺便再了解一下关于浏览器内核多线程,关于浏览器工作原理此处不做讲解,因为自己研究不深入,等待研究学习研究透彻再分享 ?...js引擎线程,同时js事件队列异步请求,交互事件触发,定时器等事件都是由浏览器事件触发线程进行监听,浏览器事件触发线程被触发后会把任务加入到js 引擎任务队列,当js 引擎空闲时候就会开始执行该任务

5.6K50

JS cookie 使用

因此,cookie可以跨越一个域名下多个网页,但不能跨越多个域名使用。   ③、不同浏览器对 cookie 实现也不一样。即保存在一个浏览器 cookie 到另外一个浏览器是 不能获取。...,我们可以通过读取 cookie 信息,恢复购物车物品。...PS:实际操作,这种方法很少用了,基本上都是将这些信息存储在数据库。然后通过查询数据库信息来恢复购物车里物品   ③、页面之间传值。在实际开发,我们往往会通过一个页面跳转到另外一个页面。...后端服务器我们可以通过数据库,session 等来传递页面所需要值。但是在浏览器端,我们可以将数据保存在 cookie ,然后在另外页面再去获取 cookie 数据。...PS:这里要注意 cookie 时效性,不然会造成获取 cookie 数据混乱。 3、怎么使用 cookie?

6.2K70

(必考)js关于类(class)继承说法

通过class关键字,可以定义类 与函数一样,类也可以使用表达式形式定义。 ? 上面代码使用表达式定义了一个类。...使用类时要注意以下几个方面: 定义“类”方法时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错。...构造函数prototype属性,在ES6“类”上面继续存在。事实上,类所有方法都定义在类prototype属性上面。 Object.assign方法可以很方便地一次向类添加多个方法。...类内部所有定义方法,都是不可枚举(non-enumerable) 类属性名,可以采用表达式。...类构造函数,不使用new是没法调用,会报错。 Class不存在变量提升

2.3K20

关于JavaStack类使用

标签(空格分隔): java - 为什么不用Stack类 《Java编程思想》第四版一书中明确不建议我们使用java.util.Stack类,一直保留只是为了兼容以前版本,在17.13.3提到了原因...主要是因为: Stack类是继承自Vector类,而不是使用Vector来实现Stack,这就产生了一个问题,Vector上可以使用方法Stack类都可以使用,所以很容易破坏栈应有的规则。...在本书11.8提到建议使用LinkedList实现栈。...PS:Stack是为了专门实现栈而创建类,作者在文中也提到“竟然不是用Vector来构建Stack,而是继承Vector”,可见作者也认为额外操作是使用Stack类所不能容忍。...在多线程ArrayList可以使用Collectiuons.synchronized方法来保证多线程环境下安全使用。 在本书17.13.1提到另一个原因就是又长又难记方法名。

1.4K90

Node.js关于accept时EMFILE处理

EMFILE表示进程打开文件描述符达到了上限,比如建立了一个TCP连接后,调用accept函数时候就可能触发这个错误。那么这个会导致什么问题呢?首先我们看看Node.js是如何处理连接。...在uv__server_ioNode.js就会不断地调用accept摘取连接,然后执行回调处理该连接。这是正常流程,那么如果accept出错了,那会怎么样?...因为Node.js,epoll工作模式是水平触发,所以每轮事件循环中,uv__server_io都会被触发,然后执行accept,接着触发错误(如果还没有可用文件描述符的话)。...然而底层已完成三次握手TCP连接无法得到处理,客户端也只能默默地在等待。Node.js选择处理策略是关闭连接来通知客户端,服务器已经过载。我们看看Node.js具体是怎么做。...当Node.js处理TCP连接时候,这个emfile_fd可能就会被用上。

90210

js关于假值和空数组总结

如果Type(x)是数值,Type(y)是字符串,返回x == ToNumber(y)结果。 如果Type(x)是字符串,Type(y)是数值,返回ToNumber(x) == y结果。...如果Type(x)是布尔值,返回ToNumber(x) == y结果。 如果Type(y)是布尔值,返回x == ToNumber(y)结果。...1、“假值”总共只有6个: false,undefined,null,0,""(空字符串),NaN 除此之外所有值,都是“真值”,即在逻辑判断可以当true来使用 用代码表示: if(false&&...[ ] == true 里不发生自动类型转换,这条语句只比较左右“值”是否相等,所以要先化为number类型,true转化为数字1就不用说了,主要分析一下[ ]怎么转化为0,这里涉及到ToPrimitive...方法操作,不懂可以先看我另一篇博客,https://i.cnblogs.com/EditPosts.aspx?

5.1K30

浅谈与使用js原型

浅谈与使用js原型# 1 什么是原型# “ 每个函数都会创建一个 prototype 属性,这个属性是一个对象,包含应该由特定引用类型实例 共享属性和方法。...上面这段话摘至《JavaScript高级程序设计》(第4版)224-225页 关于原型讲解。...2 原型使用# 首先我们使用设计模式工厂模式来实现一个Person类,可以通过new这个Person函数来创建一个与之具有相同属性实例,也就省我们再次创建Person函数了。...person2 = new Person('Greg', 27, 'Doctor') person1.sayName() // Nicholas person2.sayName() // Greg 从上面代码可以看到...3 小结# 本文仅是对于原型有个简单认识也使用,原型在js是一个比较重要模块,还有__proto__ 、 原型链 这些概念没有讲到,如果感兴趣,可以再通过书籍及视频来交叉理解。

1.1K30
领券