《JavaScript高级编程》读书笔记——数据类型
2015-10-30 17:23
483 查看
ECMAScript中有5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String,还有一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。
1. typeof操作符
对一个值使用typeof操作符可能返回下列某个字符串:
"undefined"——如果这个值未定义
"boolean"——如果这个值是布尔值
"string"——如果这个值是字符串
"number"——如果这个值是数值
"object"——如果这个值是对象或null
"function"——如果这个值是函数
2. undefined值是派生自null值的,因此 null==undefined 为true
3. Number类型
var intNum=55; //十进制
var octalNum1=070; //八进制的56
var octalNum2=079; //无效的八进制数值,解析为79
var octalNum2=08; //无效的八进制数值,解析为8
var hexNum1=0xA; //十六进制的10
var hexNum2=0x1f; //十六进制的31
NaN
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(例如,除以0会返回NaN)。
NaN本身有两个特点:首先,任何设计NaN的操作都会返回NaN;其次,NaN与任何值都不想等,包括NaN本身(例如 NaN==NaN 返回false)。
针对这两个特点,ECMAScript定义了isNaN( )函数(例如:isNaN(NaN)返回true)。
数值转换
有3个函数可以把非数值转换为数值:Number( )、parseInt( )和parseFloat( )。Number( )可以用于任何数据类型,另外两个函数则专门用于字符串转换数值。
Number( )函数的转换规则如下:
如果是Boolean值,true和false将分别转换为1和0。
如果是null值,返回0。
如果是undefined,返回NaN。
如果是字符串:
如果只包含数字,则转换为十进制数值。
如果包含有效的浮点格式,则转换为浮点数值。
如果包含有效的十六进制,例如“0xf”,则转换为相同大小的十进制整数值。
如果字符串是空的,则转换为0。
如果字符串包含除上述之外的字符,则转换为NaN。
如果是对象,则调用对象的valueOf( )方法,然后依照前面的规则转换。如果转换结果是NaN,则调用对象的toString( )方法,然后依照前面的规则转换。
parseInt( )函数转换规则:(会忽略字符串前面的空格,直至找到第一个非空格字符
如果第一个字符不是数字字符或者负号,返回NaN。
如果第一个字符是数字字符,会继续解析接下来的字符,直至解析完所有字符或者遇到了一个非数字字符。(例如,“1234blue”返回1234)
如果字符串以“0x”开头且后跟数字字符,就会当做十六进制转换为十进制;如果以“0”开头,会当做八进制转换为十进制。(注:parseInt("****",16),第二个参数指定按十六进制解析,依次类推)
parseFloat( )与parseInt( )类似,也是从第一个字符开始解析,若遇到无效的浮点数字字符则停止,忽略后面的字符串(例如:“22.34.5”返回22.34)。第二个区别在于它始终会忽略前导的零。如果可解析为整数,则返回整数。
4. String类型
在调用数值的toString( )方法时,可传递一个参数:输出数值的基数。
null和undefined没有toString( )方法。在不知道是null或undefined的情况下,可使用转型函数String( ):
var value1=10;
var value2=true;
var value3=null;
var value4;
alert(String(value1)); //"10"
alert(String(value2)); //"true"
alert(String(value3)); //"null"
alert(String(value4)); //"undefined"
5. Object类型
Object的每个实例都具有下列属性和方法:
constructor:保存着用于创建当前对象的函数。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句累美剧。
toLocaleString( ):返回对象的字符串表示,该字符串与执行环境的地区对应。
toString( ):返回对象的字符串表示。
valueOf( ):返回对象的字符串、数值或布尔值表示;通常与toString( )方法相同。
1. typeof操作符
对一个值使用typeof操作符可能返回下列某个字符串:
"undefined"——如果这个值未定义
"boolean"——如果这个值是布尔值
"string"——如果这个值是字符串
"number"——如果这个值是数值
"object"——如果这个值是对象或null
"function"——如果这个值是函数
2. undefined值是派生自null值的,因此 null==undefined 为true
3. Number类型
var intNum=55; //十进制
var octalNum1=070; //八进制的56
var octalNum2=079; //无效的八进制数值,解析为79
var octalNum2=08; //无效的八进制数值,解析为8
var hexNum1=0xA; //十六进制的10
var hexNum2=0x1f; //十六进制的31
NaN
NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(例如,除以0会返回NaN)。
NaN本身有两个特点:首先,任何设计NaN的操作都会返回NaN;其次,NaN与任何值都不想等,包括NaN本身(例如 NaN==NaN 返回false)。
针对这两个特点,ECMAScript定义了isNaN( )函数(例如:isNaN(NaN)返回true)。
数值转换
有3个函数可以把非数值转换为数值:Number( )、parseInt( )和parseFloat( )。Number( )可以用于任何数据类型,另外两个函数则专门用于字符串转换数值。
Number( )函数的转换规则如下:
如果是Boolean值,true和false将分别转换为1和0。
如果是null值,返回0。
如果是undefined,返回NaN。
如果是字符串:
如果只包含数字,则转换为十进制数值。
如果包含有效的浮点格式,则转换为浮点数值。
如果包含有效的十六进制,例如“0xf”,则转换为相同大小的十进制整数值。
如果字符串是空的,则转换为0。
如果字符串包含除上述之外的字符,则转换为NaN。
如果是对象,则调用对象的valueOf( )方法,然后依照前面的规则转换。如果转换结果是NaN,则调用对象的toString( )方法,然后依照前面的规则转换。
parseInt( )函数转换规则:(会忽略字符串前面的空格,直至找到第一个非空格字符
如果第一个字符不是数字字符或者负号,返回NaN。
如果第一个字符是数字字符,会继续解析接下来的字符,直至解析完所有字符或者遇到了一个非数字字符。(例如,“1234blue”返回1234)
如果字符串以“0x”开头且后跟数字字符,就会当做十六进制转换为十进制;如果以“0”开头,会当做八进制转换为十进制。(注:parseInt("****",16),第二个参数指定按十六进制解析,依次类推)
parseFloat( )与parseInt( )类似,也是从第一个字符开始解析,若遇到无效的浮点数字字符则停止,忽略后面的字符串(例如:“22.34.5”返回22.34)。第二个区别在于它始终会忽略前导的零。如果可解析为整数,则返回整数。
4. String类型
在调用数值的toString( )方法时,可传递一个参数:输出数值的基数。
null和undefined没有toString( )方法。在不知道是null或undefined的情况下,可使用转型函数String( ):
var value1=10;
var value2=true;
var value3=null;
var value4;
alert(String(value1)); //"10"
alert(String(value2)); //"true"
alert(String(value3)); //"null"
alert(String(value4)); //"undefined"
5. Object类型
Object的每个实例都具有下列属性和方法:
constructor:保存着用于创建当前对象的函数。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句累美剧。
toLocaleString( ):返回对象的字符串表示,该字符串与执行环境的地区对应。
toString( ):返回对象的字符串表示。
valueOf( ):返回对象的字符串、数值或布尔值表示;通常与toString( )方法相同。
相关文章推荐
- javascript性能优化
- js 从字符串中选取数字并相加
- JavaScript原型及原型链详解
- js 随机打乱数组
- js 如何将某个属性设置成隐藏的
- js小案例效果学习记录--倒计时
- jsp页面跳转和请求的各种方法
- 常用辅助类——JSON,XML,模型互转,MD5,Base64
- [WEB API] CLIENT 指定请求及回应格式(XML/JSON)
- 访问javascript对象的属性和方法
- javascript浮动广告的实现
- javaScript正则表达式
- js 常用对象有哪些
- Groovy 解析json和闭包的使用
- 提升JavaScript递归效率:Memoization技术详解
- JavaScript 开发的 45个 经典技巧
- JavaScript 调用 CSS 属性
- jsp实现简单的学生管理信息系统的类
- javascript中window.location.search方法简介
- fastjson文档解读——上篇