《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 String 对象
Apr 25 Javascript
jquery 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
javascript实现表单验证
Jan 29 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
May 20 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
Jun 16 Javascript
jQuery ajax实现省市县三级联动
Mar 07 Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
JavaScript中的宏任务和微任务详情
Nov 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 使用 __call实现重载功能示例
2019/11/18 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
vue组件生命周期详解
2017/11/07 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
详解vue 组件
2020/06/11 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python列表去重的二种方法
2014/02/14 Python
python多线程抽象编程模型详解
2019/03/20 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
超市总经理岗位职责
2014/02/02 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
贷款委托书
2014/08/01 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
看雷锋电影观后感
2015/06/10 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书