《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脚本
Dec 03 Javascript
js动画(animate)简单引擎代码示例
Dec 04 Javascript
防止文件缓存的js代码
Jan 10 Javascript
js给onclick赋值传参数的两种方法
Nov 25 Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 Javascript
如何处理JSON中的特殊字符
Nov 30 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
React如何将组件渲染到指定DOM节点详解
Sep 08 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
微信小程序中的上拉、下拉菜单功能
Mar 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中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
vuex 的简单使用
2018/03/22 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
python list转dict示例分享
2014/01/28 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
使用python 3实现发送邮件功能
2018/06/15 Python
Python中的 enum 模块源码详析
2019/01/09 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
Python模块 _winreg操作注册表
2020/02/05 Python
Python tkinter实现日期选择器
2021/02/22 Python
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
店面出租协议书范本
2014/11/28 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python