博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
路冉的JavaScript学习笔记-2015年1月23日
阅读量:5205 次
发布时间:2019-06-14

本文共 2067 字,大约阅读时间需要 6 分钟。

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)); //返回NaNconsole.log("Infinity*Infinity的值为:"+(Infinity*Infinity)); //正无穷相乘,结果仍未Infinityconsole.log("Infinity/Infinity的值为:"+(Infinity/Infinity)); //返回NaNconsole.log("Infinity/0的值为:"+(Infinity/0)); //正无穷除以0,仍然为正无穷console.log("Infinity/-0的值为:"+(Infinity/-0)); //正无穷除以-0,为负无穷console.log("0/0的值为:"+(0/0));//返回NaNconsole.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为参数,在表单检验时尤其有用。下文案例为:检验用户在表单上输入的数是否为可以运算的数值

请输入任意数字:

以下为检验函数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控制台内执行结果为:

                                 

 

转载于:https://www.cnblogs.com/LuRan/p/jsNote01.html

你可能感兴趣的文章
Advanced Architecture for ASP.NET Core Web API
查看>>
排序算法(二)
查看>>
4.4 多线程进阶篇<下>(NSOperation)
查看>>
如何更改Android的默认虚拟机地址(Android virtual driver路径设置)
查看>>
Python内置函数(36)——iter
查看>>
事件双向绑定原理
查看>>
HTML标签_1
查看>>
[Angular] @ViewChildren and QueryLists (ngAfterViewInit)
查看>>
jsp组成元素
查看>>
排序算法(转)
查看>>
windows自带的可生成各种数据库连接字符串工具打开方法
查看>>
Linux查看系统开机时间(转)
查看>>
form表单中method的get和post区别
查看>>
【做题】arc068_f-Solitaire——糊结论
查看>>
Poj 1094 拓扑排序 水题
查看>>
Oracle SQL查询,日期过滤条件要注意的一点
查看>>
链表快排
查看>>
链表操作合集
查看>>
leetcode852 C++ 20ms 找最高峰 序列先增后减
查看>>
JavaScript深入系列(一)--原型和原型链详解
查看>>