《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 相关文章推荐
获取网站跟路径的javascript代码(站点及虚拟目录)
Oct 20 Javascript
Extjs学习笔记之四 工具栏和菜单
Jan 07 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
ExtJS 入门
Oct 29 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 Javascript
vue 重塑数组之修改数组指定index的值操作
Aug 09 Javascript
JS前端可视化canvas动画原理及其推导实现
Aug 05 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
咖啡常见的种类
2021/03/03 新手入门
Thinkphp整合微信支付功能
2016/12/14 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
学习YUI.Ext 第七天--关于View&JSONView
2007/03/10 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Vue自定义指令详解
2017/07/28 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
Python实现测试磁盘性能的方法
2015/03/12 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
对python的文件内注释 help注释方法
2018/05/23 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
数控技术与应用毕业生自荐信
2013/09/24 职场文书
意向协议书范本
2014/04/23 职场文书
经营管理策划方案
2014/05/22 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
死者家属慰问信
2015/03/24 职场文书
教师节主持词开场白
2015/05/29 职场文书
遗失证明范文
2015/06/19 职场文书
捐款仪式主持词
2015/07/04 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python