《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 相关文章推荐
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
Apr 12 Javascript
基于Jquery的开发个代阴影的对话框效果代码
Jul 28 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
JS不间断向上滚动效果代码
Dec 25 Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
Oct 25 Javascript
Node.js EventEmmitter事件监听器用法实例分析
Jan 07 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
Apr 02 Javascript
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 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和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php while循环得到循环次数
2013/10/26 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
js实现文字截断功能
2016/09/14 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
js+html制作简单验证码
2017/02/16 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
python封装对象实现时间效果
2020/04/23 Python
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python中使用PDB库调试程序
2015/04/05 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
门卫人员岗位职责
2013/12/24 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
红白喜事主持词
2015/07/06 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
竞聘书的秘诀
2019/04/02 职场文书
实习报告范文
2019/07/30 职场文书
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle