JavaScript中的数据类型

5种基本数据类型:Null、Undefined、Boolean、Number、String
1种复杂数据类型:Object
1种ES6新增的数据类型:Symbol

可以使用 typeof操作符来检测变量的数据类型,typeof的返回值可以是以下几种:
1、“undefined” :未初始化或未声明过的变量???
2、“boolean”:值为布尔类型
3、“number”:值为数值
4、“string”:值为字符串
5、“object”:值为对象或数值或null
6、“function”:值为函数
7、“symbol”:值为symbol类型

数据类型介绍:
一、Undefined:此类型只有一个值undefined。未初始化的变量为此值(因此不管什么情况都没有必要把一个变量的值显示的设为undefined)。未声明的变量进行typeof操作符时的值也是undefined!!!

二、Null:空对象指针。此类型只有一个值null。如果定义的变量准备在将来保存对象,那么最好将它初始化为null,这样只要检测null值就可以知道此变量是否已经保存了一个对象的引用。undefined派生自null。console.log(undefined==null) //true

三、Boolean:以下数据会在流程控制中自动转换为false
null、undefined、false、0 NaN、0.0、""

四、Number:
1、进制:
十进制。
八进制:以0开头后面跟0—7之间的数字,如果超出则按照10进制进行处理,八进制在严格模式下("use strict")无效,js会抛出错误。
十六进制:以0x开头,后面跟0—9、a—f或A—F。
在进行算术计算时八进制和十进制会转换成十进制数字进行计算。

2、浮点数:保存浮点数需要的空间是保存整数值的两倍,因此浮点数会在合适的时机转为整数值。如

var num = 10.0; //解析为 10

极大值或极小值用科学计数法表示。
浮点数的最高精度是17位小数,但进行算术计算时器精度 远远不如整数

取值范围:
最小值 Number.MIN_VALUE;最大值 Number.MAX_VALUE,若超出范围会转换为(Infinity),如果是负值转换为负无穷 -Infinity,如果为正值转换为正无穷 +Infinity,判断一个值是否在 -Infinity和+Infinity之间用 isFinite()函数。

3、NaN:
表示该返回数值的情况未返回数值,如:console.log(1000/‘a’); =>NaN
NaN的特点:1、任何涉及NaN的操作返回NaN。2、NaN与任何值都不相等包括NaN。
可以使用 isNaN() 来判断一个数是否是NaN。
isNaN接收一个参数后,会对该值进行数值转换,如果转换成功则返回false,否则返回true。如:
isNaN(NaN); //true
isNaN(‘10’); //false
isNaN(‘aaaaaaa’); //true
isNaN(true); //false

4、数值转换:有 三个函数可以吧非数值类型转为数值类型——Number()、parseInt()、parseFloat()。
一、Number()转换遵循以下规则:
1、Boolean值,true转为1、false转为0
2、null转为0
3、undefined转为NaN
4、字符串遵循以下规则:
         4.1、如果是纯数字则忽略前导零,转为十进制数字。
         4.2、如果是浮点格式则转为对应的浮点数。
         4.3、如果是十六进制则转为对应的十进制数字。
         4.4、空字符串转为0.
         4.5、如果字符串包含除上述以外的字符串则转为NaN。

二、parseInt()转换遵循以下规则
1、忽略字符串前面的空格,直至找到第一个非空格字符串。
2、如果第一个字符不是 数字/+/-则返回NaN
3、如果第一个是数组则会解析第二个,直到解析万所有字符或遇到非数字字符
4、若字符串以0x开头,且后面是数字则按照十六进制进行解析;若以0开头且后面是数字则当成八进制进行解析(ECMAScript 3下,ECMAScript 5下当成十进制)
5、parseInt()提供第二个参数来指定转换的进制

三、parseFloat()转换遵循以下规则
1、从第一个字符开始解析,直到字符结束或无效的浮点数值格式。如:parseFloat(3.141.59);=>3.141
2、忽略前导零,只解析十进制。parseFloat(0x1f);=>0
3、若字符串包含的是一个可解析为整数的数,则返回整数。

5、String
5.1 字符串的特点:字符串一旦创建值不可变。要改变某个变量保存的字符串,首先销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。下列代码的实现过程是:
var lang = “hello”
lang = lang + ’ world’
第二行代码的过程是先创建一个能包含11个字符的字符串,然后在这个字符串填充‘hello’和’ world’,之后再销毁‘hello’和’ world’

5.2 转换为字符串
1、使用 toString() Boolean、Number、String、Object都有toString()方法,但null和undefined 没有此方法。在Number类型调用此方法的时候可以传递一个参数表示进制。如:
var num = 10;
num.toString(16);//“a”

2、使用String(),此方法可以将任意类型的值转换为string,并遵循以下规则:

如果值有 toString()方法,则调用toStrong()方法
如果值为null,返回"null"
如果值为undefined,返回"undefined"

3、用加号操作符把它与字符串""加在一起如:

var obj = {name:'zheng'}
console.log(''+obj);

6、Object类型
6.1、Object类型创建
var obj = new Object();
每个Object类型具有以下属性或方法
1)、constructor:保存着用于创建当前对象的函数。
2)、hasOwnProperty(propName):检测属性是否在当前对象示例中存在,如:obj.hasOwnProperty(‘name’)
3)、isPrototypeOf:检测传入的对象是否是当前对象的原型
4)、propertyIsEnumerable(propName):用于检测给定属性是否能用for-in语句来枚举。
5)、toString():返回对象对应的字符串。
6)、valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()的返回值相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值