《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_05_原型继承原理
Oct 13 Javascript
javascript中比较字符串是否相等的方法
Jul 23 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
jQuery动画效果animate和scrollTop结合使用实例
Apr 02 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
简述vue路由打开一个新的窗口的方法
Nov 29 Javascript
vue实现鼠标移过出现下拉二级菜单功能
Dec 12 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 Javascript
html5 录制mp3音频支持采样率和比特率设置
Jul 15 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
window.open的功能全解析
2006/10/10 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
python如何导入依赖包
2020/07/13 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
小学家长会邀请函
2014/01/23 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
学校标语大全
2014/06/19 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
党员发展大会主持词
2015/07/03 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python