转载自:https://www.jianshu.com/p/7777298e6208
一. JavaScript的七种数据类型
- 数值(Number)
- 字符串(String)
- 布尔值(Boolean):true和false
- 对象(Object):各种值组成的集合
- undefined:“未定义”或不存在
- null:表示空值,即此处的值为空
- Symbol :ES6
二. 如何确定一个值的数据类型 - typeof运算符
- instanceof运算符
- Object.prototype.toString方法
- typeof xxx :可以返回一个值的数据类型,例如:
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
function fun() {}
typeof fun // "function"
typeof undefined // "undefined"
typeof null //"object"
typeof {} // "object"
typeof [] // "object"
typeof null 由于历史原因,使用typeof时返回的数据类型是object,但实际上他是独立的一个数据类型,但是null instanceof Object返回的是false
- instanceof 返回true或者false
123 instanceof Number //true
'123' instanceof String //true
null instanceof Object //false
三. null 和undefined的区别
imagenull是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN。
null表示空值,undefined表示未定义
四. 布尔值
undefined、null、0、false、NaN、空字符串 “” 或 ‘’ : 在转换成布尔值时都为false
但是!空数组([])和空对象({})对应的布尔值,都是true
五. Number数值
imageJavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。
这就是说,JavaScript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)。
所以涉及小数的比较和运算要特别小心。
JavaScript 提供Number对象的MAX_VALUE和MIN_VALUE属性,返回可以表示的具体的最大值和最小值。
Number.MAX_VALUE // 1.7976931348623157e+308
Number.MIN_VALUE // 5e-324
-
进制
- 十进制:没有前导0的数值。
- 八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
- 十六进制:有前缀0x或0X的数值。
- 二进制:有前缀0b或0B的数值。
-
NaN
表示“非数字”(Not a Number),NaN不是独立的数据类型,而是一个特殊数值,它的数据类型依然属于Number -
注意!
- NaN不等于任何值,包括它本身。
- NaN与任何数(包括它自己)的运算,得到的都是NaN。
- NaN与任何数(包括它自己)的运算,得到的都是NaN。
六. 布尔值Boolean
布尔值包含真(true)假(false)两个值
当js在某处需要将其他类型的值转化为布尔值时,除了以下几个值转化为false,其他的默认为true
- undefined
- null
- false
- 0
- NaN
- ""或''(空字符串)
注意!空对象的值为true
另外,“ && ”表示与运算(一假即假),“ || ”表示或(一真即真)
七. Object 对象
- object为复杂数据类型,其他均为基本数据类型,复杂数据类型是由基本数据类型组成的
对象其实就是一个哈希表,他是键值对的集合(key:value)
键名为字符串,不加引号时默认转化为字符串,因此,不加引号时键名必须遵守标识符的命名规范,比如不能包含星号、加号、减号或连词线符号等 - in 运算符
in运算符用于检查对象是否包含某个key,如果包含就返回true,否则返回false。
key in Object //返回true或false - delect命令
delect Object.key //删除object里面key对应的value,并删除这个key - 遍历
for ... in ...
var obj = {
a:1,
b:2,
c:3
}
for(var key in obj){
console.log(obj[key]) //1 2 3 (顺序不一定)
}
- 遍历对象所有可遍历的属性,会跳过不可遍历的属性。
- 除了对象自身的属性,还遍历继承的属性
作者:冬天吃橘子_Autumn
链接:https://www.jianshu.com/p/7777298e6208
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
网友评论