初学数据类型(1)

JavaScript数据类型

  • 数值:整数和小数
  • 字符串:
  • 布尔值:true和false
  • undefined:表示未定义或者不存在
  • null:空值
  • 对象:值的集合,简单类型的组合
    对象又分成:
    1.狭义的对象(object)
    2.数组(array)
    3.函数(function)
  • symbol:(ES6新增)

数值

  • 0b开头的表示二进制
  • 0开头的表示八进制
  • 0x开头的表示十六进制

JavaScript 会自动将数值转为科学计数法表示:
(1)小数点前的数字多于21位。
(2)小数点后的零多于5个。

ES6中新规定反引号``包裹的字符串可以换行

var  a = `1234
5678`

不过第二行必须顶头写,不然会多出来空格。

typeof运算符

JavaScript 确定一个值到底是什么类型有三种方法:

  • typeof运算符
  • instanceof运算符
  • Object.prototype.toString方法

typeof运算符可以返回一个值的数据类型。

typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
typeof undefined//"undefined"

typeof一个对象返回object。
typeof空数组([])的类型也是object。

typeof在测试数据类型的时候会有俩个意想不到的结果

typeof null//object
typeof fn()//function

instanceof运算符可以区分数组和对象。

null 和 undefined区别

  • null是一个表示“空”的对象,转为数值时为0;
  • undefined是一个表示”此处无定义”的原始值,转为数值时为NaN。
  • 如果一个变量没有赋值,他就是undefined
  • 想有一个对象object,不想赋值,就设置等于null,非对象不想赋值就设置等于undefined

null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。

undefined表示“未定义”,用法如下:
1,变量声明了,但没有赋值
2,调用函数时,应该提供的参数没有提供,该参数等于 undefined
3,对象没有赋值的属性
4,函数没有返回值时,默认返回 undefined

boolean布尔值

下列运算符会返回布尔值:

  • 两元逻辑运算符: && (And),|| (Or)
  • 前置逻辑运算符: ! (Not)
  • 相等运算符:===,!==,==,!=
  • 比较运算符:>,>=,<,<=

转换规则是除了下面六个值被转为false,其他值都视为true。

  • undefined
  • null
  • false
  • 0
  • NaN
  • ""或''(空字符串)

空数组([])和空对象({})对应的布尔值,都是true。

NaN

NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。
NaN不是一个特殊数值,数据类型是Number。

typeof NaN // 'numbe

NaN不等于任何值,包括它本身。
NaN在布尔运算时被当作false。
NaN与任何数(包括它自己)的运算,得到的都是NaN。

Infinity

nfinity表示“无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非0数值除以0,得到Infinity。
Infinity与NaN比较,总是返回false。

parseInt,parseFloat

parseInt方法用于将字符串转为整数。
字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。

parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。

parseFloat方法用于将一个字符串转为浮点数。
parseFloat会将空字符串转为NaN。

isNaN,isFinite

isNaN方法可以用来判断一个值是否为NaN。
isNaN(Number('Hello'))
使用isNaN之前,最好判断一下数据类型。

判断NaN更可靠的方法是,利用NaN为唯一不等于自身的值的这个特点,进行判断。

isFinite方法返回一个布尔值,表示某个值是否为正常的数值。
除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回true。

参考资料:
阮一峰的JavaScript教程

你可能感兴趣的:(初学数据类型(1))