《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 学习之旅 (3)
Feb 05 Javascript
javascript Math.random()随机数函数
Nov 04 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
全面解析Bootstrap中transition、affix的使用方法
May 30 Javascript
Javascript动画效果(4)
Oct 11 Javascript
Vue.js表单控件实践
Oct 27 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
Jan 24 Javascript
详解Require.js与Sea.js的区别
Aug 05 Javascript
浅谈react性能优化的方法
Sep 05 Javascript
vue-cli3全面配置详解
Nov 14 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中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
php数组编码转换示例详解
2014/03/11 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
JS常用算法实现代码
2016/11/14 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
Python实现XML文件解析的示例代码
2018/02/05 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
网络方面基础面试题
2012/11/16 面试题
麦当劳辞职信范文
2014/01/18 职场文书
教师师德师风整改措施
2014/10/24 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
婚宴致辞
2015/07/28 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
python读取mat文件生成h5文件的实现
2022/07/15 Python