路冉的JavaScript学习笔记-2015年1月23日
1.JavaScript的数据类型
A.原始类型:包含数值、字符串、布尔值、空值(null)和未定义值(undefined)。
Js原始类型均为不可改变类型。对不可变类型调用任何自带方法都不会改变原始值,除非重新赋值。例如:
var s="Hello,World";
s.toUpperCase();//将字串全部大写
console.log("s的值为:"+s);
在Firefox Firebug控制台内执行结果为:

B.对象类型:对象为Js类的实例,使用“构造函数”为Js自带的五个类构造对象。Js自带的5个类为:Array(数组类),Date(时间类),RegExp(正则类),Error(错误类)和函数类(function,有自己的语法)。
以上5类中,除数组类为“名/值”对的有序集合外,其他类均为“名/值”对的无序集合。
构造函数实例:
var date=new Date();//构造一个时间类对象,计算自1970年1月1日到当前时间所经过的毫秒数
2.JavaScript的整数范围
JavaScript仅能识别(-2)53至(2)53之间的整数。
A.数值上溢:
数据超过(2)53时:以Infinity(正无穷)来表示。
数据小于(-2)53时:以-Infinity(负无穷)来表示。
B.数值下溢:
正浮点数无限接近于0,超过Js能表示的精度:以0来表示。
负浮点数无限接近于0,超过Js能表示的精度:以-0来表示。
在JS严格模式下,0与(-0)相等。
3.JavaScript使用二进制浮点数
实数有无穷个,但JavaScript不能表示全部的实数,某些实数只能用二进制浮点数近似表示。
Js可以精确表示:1/2,1/4,1/8...1/1024...等
Js不可以精确表示:1/10,1/100,1/1000...等,在JavaScript的真实运行环境中,0.3-0.2=0.9999999999999998
任何使用二进制浮点数表示的编程语言都存在这个问题。
4.JavaScript特殊数值的计算
除了Infinity(无穷)外,Js中还有对数值的特殊表示方法,如NaN(Not a Number,非数),当一个非数值与数值进行算术运算(+ - * /)时,程序将返回NaN。此外,JavaScript还有一些关于Infinity和0的特殊运算,仅举例如下:
console.log("0*Infinity的值为:"+(0*Infinity)); //返回NaN
console.log("Infinity*Infinity的值为:"+(Infinity*Infinity)); //正无穷相乘,结果仍未Infinity
console.log("Infinity/Infinity的值为:"+(Infinity/Infinity)); //返回NaN
console.log("Infinity/0的值为:"+(Infinity/0)); //正无穷除以0,仍然为正无穷
console.log("Infinity/-0的值为:"+(Infinity/-0)); //正无穷除以-0,为负无穷
console.log("0/0的值为:"+(0/0));//返回NaN
console.log("(-1)/Infinity的值为:"+(-1/Infinity)); //下溢为0
在Firefox Firebug控制台内执行结果为:

5.如何测试用户输入是否为数值
无法用(k==NaN)来判定k本身是否为非数,因为当k为非数时,它与自身不相等。也就是说(k==NaN)将返回false。
应使用isNaN(k)函数,或者是(k!=k)来判定,当k为非数时,(k!=k)将返回true。
可以正常运算的数都可以使用isFinite(k)来检验,k为参数,在表单检验时尤其有用。下文案例为:检验用户在表单上输入的数是否为可以运算的数值
<table>
<tr>
<td>请输入任意数字:</td>
<td><input id="monthly"></input></td>
</tr>
<tr>
<td><button onclick="calculate()">请点击计算</button></td>
</tr>
</table>
以下为检验函数calculate()的代码:
function calculate(){
var a=document.getElementById("monthly").value;
var k=parseFloat(a).toFixed(2);
if(isFinite(k)){
console.log("您输入的为数字!您输入的数字为"+k);
}else{
console.log("您输入的不是数字,请重新输入!您输入的值为"+a);
}
}
1)用户输入一个字符串“dd”: 在Firefox Firebug控制台内执行结果为:

2)用户输入一个数值: 在Firefox Firebug控制台内执行结果为:

路冉的JavaScript学习笔记-2015年1月23日的更多相关文章
- 路冉的JavaScript学习笔记-2015年2月5日
1.为Js原始值创建临时对象,并进行属性引用 var s="text"; s.len=4;//这里Js调用new String(s)的方法创建了一个临时对象,用来属性引用 cons ...
- 2015年10月23日JS笔记
ECMAScript标准:JavaScript核心语法 微软:Jscript ECMAScript标准:一纸空文 JavaScript和JScritp都号称完全实现了 ECMAScript标准 W3C ...
- 初识Less(2015年05月23日)
因为最近在研究Bootstrap,然后才了解到Less,听说Less很强大,又听说Bootstrap+Less会更搭,所以就决定也顺带了解下Less的相关知识. come on...... 一.简介 ...
- github使用指南(2015年3月23日更新了本地创建仓库再推送到remote仓库的使用方法)
我是通过这个来学习的.个人愚笨,琢磨了半天,终于搞通了,醉了醉了,以前一直使用svn,用git确实有点水土不服.本文以如何使用git为主来展开,不涉及太多理论. git是分布式的版本管理.什么叫分布式 ...
- Palindrome Number 2015年6月23日
题目: 判断一个数是不是回文数 Determine whether an integer is a palindrome. Do this without extra space. 思路:借助上一道求 ...
- Reverse Integer 2015年6月23日
题目: Reverse digits of an integer. Example1: x = , return Example2: x = -, return - 思路:递归 解答: / test ...
- JavaScript学习笔记[0]
JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
随机推荐
- Java免费开源数据库、Java嵌入式数据库、Java内存数据库
Java免费开源数据库.Java嵌入式数据库.Java内存数据库 http://blog.csdn.net/leiyinsu/article/details/8597680
- vs2012+opencv2.4.7 实现单张人脸识别
参考:http://blog.sina.com.cn/s/blog_593c85f20100ncnj.html OpenCV的库中带有检测正面人脸的 Haar迭代算法Haar Cascade Face ...
- 去除Coding4Fun中MessagePrompt的边框(Border)
在App.xaml文件中添加 xmlns:c4f="clr-namespace:Coding4Fun.Toolkit.Controls;assembly=Coding4Fun.Toolkit ...
- SQL模糊查询与删除多条语句复习
string IDlist="1,2,3"; 批量删除数据 StringBuilder strsql=new StringBuilder(); strSql.Append(&quo ...
- Android UI性能优化详解
设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI.UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计.无论你的ap ...
- ADDED_TO_STAGE 多次被调用
var mca:MovieClip=new MCA(); mca.addEventListener(Event.ADDED_TO_STAGE,addStageEvent); function addS ...
- [Hadoop源码解读](三)MapReduce篇之Job类
下面,我们只涉及MapReduce 1,而不涉及YARN. 当我们在写MapReduce程序的时候,通常,在main函数里,我们会像下面这样做.建立一个Job对象,设置它的JobName,然后配置输入 ...
- bzoj2286
很明显,20%=mincut 40%=每次暴力树形dp那么正解是什么呢?不难发现∑ki<=500000,也就是每次询问的复杂度都要跟k有关从树形dp工作的角度来看,确实有很多点我们根本就没必要访 ...
- How to Customize Server Header using NginX headers-more module
http://wiki.nginx.org/HttpHeadersMoreModule#Version headers_more When you are browsing a website, yo ...
- HTML5,CSS3 与 Javascript 制作视频播放器
早一段时间,有一直研究 HTML5 和 CSS3 ,自己也做了不少 Demo ,只是 HTML5 Video 和 Audio 由于自己平时比较喜欢留意不同的播放器,因此特别想做一个自己喜欢的设计,考虑 ...