《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 相关文章推荐
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
Nov 20 Javascript
node.js中的buffer.fill方法使用说明
Dec 14 Javascript
jquery实现用户打分评分特效
May 28 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
vue2.0获取自定义属性的值
Mar 28 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
Sep 12 Javascript
解决layer弹出层中表单不起作用的问题
Sep 09 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
《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 cli 方式 在crotab中运行解决
2010/02/08 PHP
PHP中文编码小技巧
2014/12/25 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
python画图常规设置方式
2020/03/05 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
python将音频进行变速的操作方法
2020/04/08 Python
python 读取串口数据的示例
2020/11/09 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
人事主管岗位职责范本
2013/12/04 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
大学新生入学感想
2015/08/07 职场文书
初中班主任教育随笔
2015/08/15 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书