《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 相关文章推荐
Jquery取得iframe下内容的方法
Nov 18 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
Nov 22 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
Jan 10 Javascript
JavaScript中的typeof操作符用法实例
Apr 05 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
Javascript数组Array方法解读
Mar 13 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
May 17 Javascript
JS设置CSS样式的方式汇总
Jan 21 Javascript
JS在浏览器中解析Base64编码图像
Feb 09 Javascript
10道典型的JavaScript面试题
Mar 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
php 301转向实现代码
2008/09/18 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
js实现简单扫雷
2020/11/27 Javascript
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python获取邮件地址的方法
2015/07/10 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
django和flask哪个值得研究学习
2020/07/31 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
大学毕业生自荐书怎么写?
2014/01/06 职场文书
房产继承公证书
2014/04/09 职场文书
电子商务专业求职信
2014/07/10 职场文书
2015年司法局工作总结
2015/05/22 职场文书
党支部半年考察意见
2015/06/01 职场文书
Python何绘制带有背景色块的折线图
2022/04/23 Python