数据类型
ECMAScript 有 6 种简单数据类型:Undefined、Null、Boolean、Number、String 和 Symbol。
1、typeof操作符
●对一个值使用typeof操作符会返回下列字符串之一:
undefined | 值未定义 |
---|---|
boolean | 值为布尔值 |
string | 值为字符串 |
number | 值为数值 |
object | 值为对象(而不是函数)或 null |
function | 值为函数 |
symbol | 值为符号 |
2、Undefined类型
Undefined 类型只有一个值,就是特殊值 undefined。当使用 var 或 let 声明了变量但没有初始
化时,就相当于给变量赋予了 undefined 值:
var age;
console.log(age); // undefined
console.log('我'+age+'了');//我undefined了
console.log(11+age);//NaN
console.log(true+age);//NaN
3、Null类型
一个声明变量给null值,里面存的值为空
var x=null;
console.log('我'+x);//我null
console.log(11+x);//11
console.log(true+x);//1
4、Boolean 类型
Boolean(布尔值)有两个字面值:true 和 false。这两个布尔值不同于数值,因此 true 不等于 1,false 不等于 0。
5、Number 类型
(1)不同的数值类型相应地数值字面量格式
let intNum = 55; // 整数
let octalNum1 = 070; // 八进制的 56
let octalNum2 = 079; // 无效的八进制值,当成 79 处理
let octalNum3 = 08; // 无效的八进制值,当成 8 处理
let hexNum1 = 0xA; // 十六进制 10
(2)浮点数
let floatNum1 = 1.1;
let floatNum2 = 0.1;
let floatNum3 = .1; // 有效,但不推荐
let floatNum1 = 1.; // 小数点后面没有数字,当成整数 1 处理
let floatNum2 = 10.0; // 小数点后面是零,当成整数 10 处理
let floatNum = 3.125e7; // 等于 31250000
(3)数字型的三个特殊值
●infinity,代表无穷大,大于任何数值
●-infinity,代表无穷小,小于任何数值
●NaN,not a number,代表一个非数值
alert(Infinity);//Infinity
alert(-Infinity);//-Infinity
alert(NaN);//NaN
(4)数值转换
Number()函数
●布尔值,true 转换为 1,false 转换为 0。
●数值,直接返回。
●null,返回 0。
● undefined,返回 NaN。
●字符串:
alert(Number("123"));//123
alert(Number("011"));//11
alert(Number("1.1"));//1.1
alert(Number("0xa"));//10
alert(Number(""));//0
alert(Number("@"));//NaN
parseInt()函数
parseInt()函数从第一个非空格字符开始转换。如果第一个字符不是数值字符、加号或减号parseInt()立即返回 NaN。
let num1 = parseInt("1234blue"); // 1234
let num2 = parseInt(""); // NaN
let num3 = parseInt("0xA"); // 10,解释为十六进制整数
let num4 = parseInt(22.5); // 22
let num5 = parseInt("70"); // 70,解释为十进制值
let num6 = parseInt("0xf"); // 15,解释为十六进制整数
parseFloat()函数
parseFloat()函数从位置 0 开始检测每个字符。同样,它也是解析到字符串末尾或者解析到一个无效的浮点数值字符为止。
let num1 = parseFloat("1234blue"); // 1234,按整数解析
let num2 = parseFloat("0xA"); // 0
let num3 = parseFloat("22.5"); // 22.5
let num4 = parseFloat("22.34.5"); // 22.34
let num5 = parseFloat("0908.5"); // 908.5
let num6 = parseFloat("3.125e7"); // 31250000
6、String 类型
(1)字符串可以使用双引号(")、单引号(’)或反引号(`)标示:
let firstName = "John";
let lastName = 'Jacob';
let lastName = `Jingleheimerschmidt`
但是要注意字符串开头和结尾的引号必须是同一种
let firstName = 'Nicholas"; // 语法错误:开头和结尾的引号必须是同一种
(2)字符字面量
字符字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 换行 |
(3)转换为字符串
●toString()方法
●String()函数
7、Symbol 类型
符号需要使用 Symbol()函数初始化
let sym = Symbol();
console.log(typeof sym); // symbol