js数据类型

103 阅读3分钟

数据类型


基本数据类型包括了:numberstringbooleanundefinednull

一、 如何查看数据类型

使用typeof关键字查看数据类型

typeof(name);  
// 括号可以省略
typeof name;

1、Number 类型

进制

  • 十进制,我们平时使用的就是十进制,进行运算时,八进制和十六进制的值最终都会转换成十进制。
  • 二进制,计算机当中用的最多的计算方式,数值序列只有01
  • 八进制,0开头的数值,数值序列:0-7
  • 十六进制,0x开头的数值,数值序列:0-9A-Fa-f

浮点数

所谓浮点数,就是该数当中必须包含一个小数点,并且小数点后面至少有一位数字。

科学计数法:

//如何表示0.003和20000?
let num = 3e-3;   // 0.003
let num2 = 2e+4;  // 20000  

浮点数的精度问题:

0.1 + 0.2 = ?    // 0.30000000000000004
0.07 * 100 = ?   // 7.000000000000001

浮点数在运算的时候会出现精度丢失的问题,因此在做比较运算的时候,尽量不要用小数进行比较。

数值范围

javascript不能表示世界上所有的数,因此在javascript中,数值大小是有一定限制的。

  • Number.MIN_VALUE:5e-324 (js里面能表示最小的数)
  • Number.MAX_VALUE:1.7976931348623157e+308 (js里面能表示最大的数)
  • Infinity:正无穷 (如果超出js里面最大的数,将会显示infinity)
  • -Infinity:负无穷 (如果超出js里面最小的数,将会显示-infinity)

数值判断

  • NaN: 表示一个非数值,当无法运算或者运算错误的时候,会得到一个NaNNaNnumber类型,表示一个非数值。
  • NaN与任何值都不想等,包括它本身
  • isNaN: 用来判断是否是一个数字,当返回true的时候说明是NaN,表示的不是一个数字,返回false,说明不是NaN,表示的是一个数字。

示例代码:

let str = "abc";
console.log(isNaN(str));  // true 说明不是一个数字

2、String 类型

字面量

字符串的字面量:"abc" 、 'abc' 字符串可以是双引号,也可以是单引号引起来。

不管是双引号,还是单引号,都是成对出现的,假如打印的字符串里有引号怎么办呢?

这里就要活学活用,如果只有一处有引号,就可以用单双引号混合使用:

console.log('我是"帅哥"');  // ==> 我是"帅哥"

假如引号非常多的时候怎么办呢? 用转义字符:“\”

console.log("我是'帅哥',\"哈哈哈\""); // ==> 我是'帅哥',"哈哈哈"

字符串拼接

拼接字符串使用+

示例代码:

console.log(11 + 11);             //  22
console.log("hello" + " world");  // "hello world"
console.log("100" + "100");       // "100100"
console.log("11" + 11);           // "1111"

总结:

  • 两边只要有一个是字符串,那么+就是字符串拼接功能
  • 两边如果都是数字,那么就是算术功能。

字符串长度

length属性用来获取字符串的长度

let str = "abcdefghij";
str.length;// 字符串的长度  10

3、boolean 类型

boolean类型只有两个字面量,truefalse,区分大小写(True,False不是布尔类型,只是标识符)。

所有类型的值都可以转化成true或者false

NaN""undefinednullalse0 这6个值可以转换成false,其余的都是true

4、undefined类型与null类型

undefined表示一个声明了没有赋值的变量

let name ;
console.log(name); // undefined

null表示一个空的对象

let name = null;
console.log(typeof name); // Object

如果定义的变量,将来是准备用于保存对象的话,最好将变量初始化为null

let name = null;

undefined 与 null 的关系

undefined == null;   // true
undefined === null;  // false

实际上,undefiner值是派生自null值的,所以判断相等时为true,但是两种用途是完全不一样的。