《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 相关文章推荐
固定背景实现的背景滚动特效示例分享
May 19 Javascript
不使用ajax实现无刷新提交表单
Dec 21 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
jQuery简单几行代码实现tab切换
Mar 10 Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
详解百度百科目录导航树小插件
Jan 08 Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
vue 更改连接后台的api示例
Nov 11 Javascript
微信小程序仿通讯录功能
Apr 09 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
使用数据库保存session的方法
2006/10/09 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
总结一些js自定义的函数
2006/08/05 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
详解node.js 事件循环
2020/07/22 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
Python如何使用input函数获取输入
2020/08/06 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
特色蛋糕店创业计划书
2014/01/28 职场文书
军训考核自我鉴定
2014/02/13 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL