JS目前共有7种数据类型,其中6种为简单类型(number,string,boolean,null,undefined,symbol),一种为复杂类型(object)。
1.Number类型
1.1 数字包含整数以及小数。所有数字都是由64位浮点数存储的。
类似1和1.0是相等的
1===1.0
true
但是涉及到小数的运算需要格外小心,是有微小误差的
0.3/0.1=3
VM65:1 Uncaught ReferenceError: Invalid left-hand side in assignment
0.3/0.1
2.9999999999999996
1.2 数值的进制
使用字面量表示数值时,js对整数提供4种进制表示方法:
2进制//前缀为0b或者0B
8进制//前缀为0或者0o或者00,且只用1~7的阿拉伯数值表示
10进制//没有前导0的数值
16进制//有前缀0x或者0X
1.3 NaN
NaN是JS的特殊值,表示非数字(Not a Number)
但NaN本身是属于数值的
typeof NaN
"number"
NaN不等于自身和任何数值;NaN在boolean运算时为false;NaN与NaN的运算都是false;
isNaN()方法用以判断一个值是否为NaN
1.4.1 parseInt()方法
parseInt()方法用于将字符串转化为整数。
同时也可以输入两个参数,第二个参数输入2-32的阿拉伯整数,将第一个参数转化为相应进制的数值。第二个参数输入超出限定的数值后,输出结果会表示为NaN(0,null,undefined作为参数则直接被忽略)
2.String
2.1定义
字符串是0个或者多个排列在一起的字符,放在单引号和双引号内。
字符串默认只能写在一行,否则会报错
'a
b
c'
//VM106:1 Uncaught SyntaxError: Invalid or unexpected token
如果强迫症必须要写成三行没可以在末尾添加反斜杠
'a\
b\
c'
//"abc"
或者使用'`'符号包裹,就是键盘上数字1键位左边那个
`a
b
c`
//
"a
b
c"
2.2转义符
反斜杠(\)在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。
常用的需要反斜杠来转义的特殊字符:
\0:null
\n:换行符
\r:回车键
\t:制表符
':单引号
":双引号
\:反斜杠
2.3 字符串与数组;Length属性
字符串可以被视为一个数组,可以用方括号运算符属性查看相应位置的字符;也可以用length属性查看长度。但其相似度仅仅如此,无法如同数组一样对其属性进行变更
('naruto')[0]
//"n"
('naruto').length
//6
3 Null和Undefined
null和undefined都表示‘无’。
一般用null来表示空对象;undefined表示空非对象类型。
4 Boolean类型
布尔值分为true和false,常用于逻辑运算。
以下运算符会返回布尔值
前置逻辑运算符:!(表示not)
相等运算符:===,!==,==,!=
比较运算符:>,>=,<,<=
在逻辑运算中,null,undefined,NaN,0,false,''(空字符串),直接转换为false.
空数组和空对象对应的布尔值都是true.
5 symbol类型
symbol类型是ES6新引进的一中数据类型,表示独一无二的值。
var a=Symbol();
var b =Symbol();
a===b;
false
6 Object
6.1
object是JS语言的核心,是最重要的数据类型。
可以用var a={};来创建对象
这是一个空数组,键名(属性名;key)和值可以在创建时添加,也可以在随后动态地添加。需要注意,其命名规则需要和标识符一致,不然需要加上引号,否则会报错。
6.2可以使用delete 删除属性
var yyy={a:b}
delete yyy.a;//true
yyy//{}
6.3 使用in运算来查看属性是否存在
var yyy={a:b}
'a' in yyy//true
6.4 遍历属性
使用for in 循环来遍历一个对象的所有属性
var yyy={a:1,b:2,c:3}
for(var i in yyy){console.log('键名:'+i+','+'键值:'+yyy[i]);}
VM654:1 键名:a,键值:1
VM654:1 键名:b,键值:2
VM654:1 键名:c,键值:3
更新2018/9/23
1. String转换为Number
1.1 Number()
1.2 parseInt()或者parseFloat
1.3 'string' - 0 //通过减零来实现,老司机技能
1.4 +'string' //通过取正来实现
2. 转换为String
2.1 .toString()方法实现
2.2 xxx+'' //值加空字符串,任意一边有字符串,js就会尝试把另一边也转化为字符串,老司机技能
3. 逻辑运算,求false和true
3.1 Boolean()
3.2 !! //求反,老司机技能
需要注意5个falsy值(undefined,null,NaN,0,''),这五个中最后一个为空字符串。
网友评论