博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript程序开发(八)—js语法之数据类型
阅读量:5256 次
发布时间:2019-06-14

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

  由于环境关系,今天下定决心,要在半年之内,让自己的技术水平有一个很大的提高,而不能仅仅限于在自己的工作范围之内,但是我做的工作,绝不是为了某些人而做,是为了给自己争口气,即所谓人活一张脸,树活一张皮!废话少说,进入正题,接着昨天的题目,继续js的数据类型。

Boolean类型

  Boolean类型是js中使用的最多的一种数据类型,该类型只有两个值:true和false。这两个数值和数字值不是一回事,因此true不一定等于1,false也不一定等于0。如下实例是为变量赋Boolean类型值的例子:

var flag = true;   var lost = false;

  关于Boolean类型有一点需要注意的是Boolean类型的字面值是区分大小写的,也就是说True和False并不是Boolean类型数据,而只是普通标示符,但未了增加代码的易读性和避免一些不必要的问题出现,不建议用这两个标示符做变量。

  虽然Boolean类型只有两个值,但是所有类型的数据都可以通过Boolean()函数转换成对应的Boolean类型值。如下实例代码所示:

var flag = "Hello World!";   var msg = Boolean(flag);

  各种数据类型与Boolean类型的转换规则如下表所述:

数据类型 转换为true 转换为false
Boolean true false
 String  任何非空字符串  “”空字符串 
 Number  任何非0数值,包括无穷大  0和Nan
 Object  任何非空对象  null
 Undefined  n/a  undefined

 根据以上规则,我们可以写出下面的一个代码实例:

function test(){   var flag = "Hello World!";   if(flag){       alert("write:true");   }else{       alert("write:false");   }}

Number类型

  ECMAScript是使用IEEE754格式来表示整数和浮点数值。为了支持各种数值类型,ECMAScript-262定义了各种不同的数值字面量格式,常用的有十进制、八进制、二进制和十六进制。对于这些不同进制的数值转换,不在此一一介绍,如果需要,我会在后续的blog中详细描述。

  上面说的是整数类型,还有一个浮点类型,浮点类型就是带小数点的数值,浮点数里面有一个知识点就是科学计数法,不在此介绍,我会在后续blog中一一陈述。

  Number类型数据有一个数值范围的问题。ECMAScript并不能保存世界上所有的数值,最小的数值保存在Number的MIN_VALUE属性中,在大多数浏览器中的值是5e-324,最大值保存在Number的MAX_VALUE属性中,在大多数浏览器中的这个值是1.7976931348623157+308。如果计算的结果超出了这两个最值,那么久会得到一个特殊的Infinity,如果是负数,则相应的转为-Infinity(无穷)。Infinity是一个不能够参与计算的数值。如果不确定参与计算的数值是否为Infinity,可以使用isFinite()检测。如果是介于Infinity和-Infinity之间的数值,则返回true。

  Number类的NEGATIVE_INFINITY和POSITIVE_INFINITY这两个属性分别保存着-Infinity和Infinity。

NaN类型

  NaN(not a Number)是一个特殊的数值。在其他的编程语言中,任何数除以0都会返回异常,导致停止代码执行,而在js中,则会返回一个NaN,不会影响其他代码的执行。NaN本身有两个特点:

  1. 任何涉及到NaN的操作都会返回NaN,但是这个特点在多步计算中可能导致问题;
  2. NaN和任何值都不相等,包括NaN本身。

ECMAScript中的isNaN(para)可以用来判断参数是否“不是数值”。isNaN(para)在接收到一个值之后,会尝试将这个值转换为数值,某些不是数值的值可能会被转换成数值,如“10”或Boolean值。如下实例所示:

document.write(isNaN("10"));  //false ,"10"被转换成10    document.write(isNaN(10));   //false,10是数字    document.write(isNaN(false));  // false,false被转换成0    document.write(isNaN(NaN));  //true,NaN不是 数值    document.write(isNaN("str"));  //true,"str"不是数值

  isNaN(para)也适用于对象。在基于对象调用isNaN()时,首先会调用对象的valueOf(),然后确定该返回值可否被转换成数值,如果不能,则再基于这个值调用toString()方法,再测试这个返回值。

转载于:https://www.cnblogs.com/yansj1997/archive/2012/05/28/2522565.html

你可能感兴趣的文章
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
Factory Design Pattern
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
网站产品设计
查看>>
go 学习笔记(4) ---项目结构
查看>>
java中静态代码块的用法 static用法详解
查看>>
Java线程面试题
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
提高PHP性能的10条建议
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
熟用TableView
查看>>
Java大数——a^b + b^a
查看>>
poj 3164 最小树形图(朱刘算法)
查看>>