《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监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
Js sort排序使用方法
Oct 17 Javascript
调试Node.JS的辅助工具(NodeWatcher)
Jan 04 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
Oct 30 Javascript
浅谈JavaScript中指针和地址
Jul 26 Javascript
js实现左侧网页tab滑动门效果代码
Sep 06 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
JavaScript表单验证完美代码
Mar 02 Javascript
vue element table 表格请求后台排序的方法
Sep 28 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
Aug 27 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
小程序实现多列选择器
2019/02/15 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
Python实现快速多线程ping的方法
2015/07/15 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
Python协程的用法和例子详解
2017/09/09 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
在职党员进社区活动总结
2014/07/05 职场文书
党建目标管理责任书
2014/07/25 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
军事理论课感想
2015/08/11 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技