《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浏览器兼容教程之事件处理
Jun 09 Javascript
jquery文档操作wrap()方法实例简述
Jan 10 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
Feb 28 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
webpack3+React 的配置全解
Aug 21 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
Apr 09 Javascript
Vue多系统切换实现方案
Jun 05 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
浅谈vue 锚点指令v-anchor的使用
Nov 13 Javascript
JS实现简易留言板(节点操作)
Mar 16 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php 引用(&)详解
2009/11/20 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
phpize的深入理解
2013/06/03 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
对python 命令的-u参数详解
2018/12/03 Python
python 深度学习中的4种激活函数
2020/09/18 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
NFL官方在线商店:NFLShop
2020/07/29 全球购物
行政专员岗位职责
2014/01/02 职场文书
大学活动策划书范文
2014/01/10 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
2014年终工作总结范本
2014/12/15 职场文书
初婚初育证明范本
2015/06/18 职场文书
员工工作心得体会
2019/05/07 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript