《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型


Posted in Javascript onFebruary 27, 2012

2.6 原始类型

ECMAScript有5种原始类型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof来判断值的类型。
1、typeof运算符:

var sTemp="test string"; 
alert(typeof sTemp);//outpus "string" 
alert(typeof 95);//outpus "number"

typeof运算符返回值只有5种,分别为:如果变量是Undefined型返回"undefined",如果变量是Boolean型返回"boolean",如果变量是Number型返回"number",如果变量是String型返回"string",如果变量是一种引用类型或Null类型返回"object"。
2、Undefined类型

Undefined类型只有一个值,即undefined。当声明的变量未初始化和函数无明确的返回值时该变量的默认值和函数的返回值都是undefined。需要注意的是值undefined并不同于未定义的值,但typeof不区分这两种值。参考下面的代码:

var oTemp; 
alert(typeof oTemp); //outpus "undefined" 
alert(typeof otemp2); //outpus "undefined" 
alert(oTemp==undefined); //outpus "true" 
alert(oTemp2==undefined); //causes error 
function testFunc(){ 
// 
} 
alert(testFunc() == undefined); //outpus "true"

3、Null类型

Null也是只有一个值的类型,它只有一个专用值null。值undefined实际不是从值null派生来的,因此ECMAScript把它们定义为相等。
1 alert(null == undefined); //outpus "true"

尽管这两个值相等,但它们的含义不同。undefined是声明了变量但未对其初始化时的值,null则用于表示尚未存在的对象。
4、Boolean类型

Boolean有两个值true和false
5、Number类型

Number可以表示32位整数,还可以表示64位浮点数,不同进制间的表示:

var iNum=55;// 10进制 
var iNum=070;// 8进制 
var iNum=oxAB;//16进制 
var fNum=3.125e7;//科学计数法表示浮点数

几个特殊值也被定义为Number类型,前两个是Number.MAX_VALUE和Number.MIN_VALUE,它们定义了Number值集合的外边界。所有ECMAScript数都必须在这两个值之间,不过计算生成的数值结果可以不落在这两个数之间。

当计算生成的数大于Number.MAX_VALUE时,它将被赋予值Number.POSITIVE_INFINITY,意味着不再有数字值。同样,生成的数值小于Number.MIN_VALUE的计算也会被赋予值Number.NEGATIVE_INFINITY,也意味着不再有数字值。如果计算返回的结果是无穷大,那么生成的结果不能再用于其他计算。

事实上,有专门的值表示无穷大,即Infinity。Number.POSITIVE_INFINITY的值为Infinity,Number.NEGATIVE_INFINITY的值为-Infinity。

可以对任何数调用isFinit()方法来判断是不是无穷大。例:

var iResult = iNum*some_really_large_number; 
if(isFinit(iResult)){ 
alert("Number is finite"); 
} 
else{ 
alert("Number is infinite"); 
}

还有一个特殊值是NaN,表示非数(Not a Number)。NaN一般为类型转换失败时的值,NaN不能用于算术计算,NaN的另一个奇特之处在于它与自身并不相等,因此推荐使用isNaN(),如:

alert(NaN == NaN); //outpus "false" 
alert(isNaN("blue")); //outpus "true" 
alert(isNaN("123")); //outpus "false" 
alert(isNaN(123)); //outpus "false"

6、String类型

String是唯一没有固定大小的原始类型。ECMAScript的字符字面量:

字面量

含义

\n

换行

\t

制表符

\b

  空格

\r

回车

\f

换页符

\\

反斜杠

\'

单引号

\"

双引号

\0nnn

  八进制代码nnn表示的字符

\xnn

16进制代码nn表示的字符

\unnnn

16进制的代码nnnn表不的Unicode字符

Javascript 相关文章推荐
用倒置滤镜把div倒置,再把table倒置。
Jul 31 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
Sep 12 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
js轮播图无缝滚动效果
Jun 17 Javascript
浅谈React中组件间抽象
Jan 27 Javascript
JS动画实现回调地狱promise的实例代码详解
Nov 08 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 16 Javascript
Vue Render函数创建DOM节点代码实例
Jul 08 Javascript
微信小程序使用前置摄像头拍照
Oct 22 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 #Javascript
JavaScript 代码压缩工具小结
Feb 27 #Javascript
根据邮箱的域名跳转到相应的登录页面的代码
Feb 27 #Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
Feb 27 #Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 #Javascript
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 #Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 #Javascript
You might like
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
使用PHP开发留言板功能
2019/11/19 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
DOM下的节点属性和操作小结
2009/05/14 Javascript
JavaScript 创建对象
2009/07/17 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
Python smallseg分词用法实例分析
2015/05/28 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
python针对excel的操作技巧
2018/03/13 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
python属于哪种语言
2020/08/16 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
汇科协同Java笔试题
2012/03/31 面试题
七一建党节演讲稿
2014/09/11 职场文书
工作证明英文模板
2014/10/21 职场文书
2015教师节通讯稿
2015/07/20 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript