JavaScript具备七种数据类型
- number(数值):整数和小数
- string(字符串):文本
- boolean(布尔):true和false
- null:表示空值
可转化为数值,值为0
- undefined:表示未定义,不存在
可转化为数值NaN(Not a Number)
- object(对象):各种键值对组成的集合,除object外均为基础类型
- symbol:ES6新增的第七种数据类型
primitivetype(原始类型):number、string、boolean
JavaScript有三种方法确定一个值是何种类型:
1)typeof运算符:
typeof运算符可返回值得数据类型
数值、字符串、布尔值、null、undefined、symbol、对象分别返回:'number'、'string'、
'boolean'、'object'、'undefined'、'symbol'、'object'
例如:typeof 3 //返回"number"
但有几个比较特殊,函数返回"function",null返回"object",[]返回"object"
2)instanceof运算符:可用来区分数组与对象
3)object.prototype.toString方法
1.number(数值)
JavaScript内部所有数字均以64位浮点数形式储存(由于浮点数不是精确的值,所以涉及小数的比较与运算时需要小心)
- 整数与小数:1和1.1
- 科学计数法:1.25E2
- 二进制: xb11
- 八进制:011(后来ES5添加了0o11语法)
- 十六进制:0x11
parseInt():将字符串转为整数
如果遇到不能转换的便不再进行下去,返回已转好的部分
如果字符串第一个字符不能转换为数字,返回NaN
如果其中有第二个参数,例如10,即十进制转十进制
parseInt('1000', 10) //十进制转十进制,结果为1000
parseInt('1000', 2) //二进制转十进制,结果为8
parseInt('1000', 8) //八进制转进制,结果为512
parseInt('1000', 16) //十进制转十进制,结果为4096
parseFloat():将字符串转为浮点数,会将空字符串转为NaN
isNaN():判断值是否为NaN
isFinite():返回布尔值,表示某值是否为正常数
2.string(字符串)
- 空字符串:
''
(空字符串的length为0) - 多行字符串:
1.在每一行末尾使用使用反斜杠\
(反斜杠后不能有任何空格或字符)
2.将长字符串分为多块字符串:'123' +'234' + '345'
3.ES6中增加使用反引号`123`
形式可写多行字符串(换行时缩进与回车都会包含在字符串中)
转义:
\0 :null
\b :后退键
\f :换页符
\n :换行符
\r :回车键
\t :制表符
\v :垂直制表符
\' :单引号
\" :双引号
\\ :反斜杠
3.boolean(布尔)
boolean取值时只有两个值:true和false
a && b :在 a 和 b 都为 true 时,取值为 true;否则为 false(&&:与)
a || b :在 a 和 b 都为 false 时,取值为 false;否则为 true(||:或)
4.null和undefined
null和undefined均表示什么也没有(没有值)
- (语法规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
- (惯例)如果想要表示一个还没赋值的对象,就用 null。如果想要表示一个还没赋值的非对象(字符串/数字/布尔/symbol),就用 undefined
5.object(对象)
1.object 是复杂类型,是上面几种基本类型(无序地)组合(以键值对的形式key-value)在一起
2.object 里面可以有 object
3.object 的 key 一律是字符串,不存在其他类型的 key
4.object[''] 是合法的,空字符串也可以当做object的key
5.object['key'] 可以写作 object.key
6.object.key 与 object[key] 不同
7.创建对象有三种方法:
var o1 = {};
var o2 = new object();
var o3 = Object.create(Object.propotype);
8.object.keys()方法可以查看对象本身的所有属性
9.delete命令用于删除对象属性(只能删除对象本身属性,无法删除继承的属性):delete object['key']
10.in运算符用于检查对象是否包含某属性(检查键名):'key' in object
但是in运算符无法识别属性是对象自身的还是继承的
网友评论