typeof
获取变量数据类型
typeof variable
(typeof(variable)
) 返回一个字符串,值为该变量的数据类型
console.log(typeof 1); // number console.log(typeof false); // boolean console.log(typeof 'aaa'); // string console.log(typeof undefined);// undefined console.log(typeof NaN); // number console.log(typeof Infinity); // number console.log(typeof null); // object console.log(typeof typeof 1); // string 复制代码
字面量
字面量是在源代码中一个固定的表示法,通俗来说,就是字面量如何表达这个值
- 数字字面量:
1
、0
- 字符串字面量:
mphy
、aaa
- 布尔字面量:
true
、false
数据类型转换
什么是数据类型转换
使用表单、prompt
获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。 通俗来说,就是把一种数据类型的变量转换成另外一种数据类型 我们通常会实现3种方式的转换:
- 转换为字符串类型
- 转换为数字型
- 转换为布尔型
转换成字符串的三种方法
一般用第三种方式,隐式转换
toString()
方法String()
方法- 加号
+
拼接字符串
var num = 12; console.log(num.toString()); console.log(String(num)); console.log(num + '');
数字字符长转数字
var str = '123' console.log(str - '');
转换为数字型
方式 | 说明 | 案例 |
parseInt(str) 函数 |
string->整数型 | parseInt('10') |
parseFloat() 函数 |
string->浮点型 | parseFloat('3.14') |
Number() 强转换函数 |
string->数字型 | Number('12') |
JS 隐式转换 | 算术运算符隐式转换为数字型 | '12'- 0 或 '12' - '' 或 '12'*1 |
console.log(parseInt('123')); // 123 console.log(parseFloat('3.14')); // 3.14 console.log('123' - 0); // 123 console.log('123' - ''); // 123 console.log(parseFloat('999')); // 999 console.log(parseInt('3.14159')); // 3 console.log(parseInt('120px')); // 120 console.log(Number('100')); // 100 console.log(Number('100.32')); // 100.32 console.log(Number('100px')); // NaN console.log('100px' - ''); // NaN
(1)数字字符串('12.3'
,12
)之间进行加法运算实际上是字符串的拼接,结果还是字符串;而数字字符串之间的减法运算是算术运算,结果是数字型。
(2)一个数字字符长和一个数字相乘,结果是算数运算结果,为数字型。
console.log('10' + '2'); // 102 console.log('10' - '2'); // 8 console.log('10' + '3.2'); // 103.2 console.log('10' - '3.2'); // 6.8 console.log('12'*3); // 36
转换为布尔型
使用 Boolean()
函数转换。
- 转换值为
false
:''
,0
,NaN
,null
,undefined
(5个) - 其他的转换值均为
true
console.log(Boolean('')); // false console.log(Boolean(0)); // false console.log(Boolean(NaN)); // false console.log(Boolean(null)); // false console.log(Boolean(undefined)); // false console.log(Boolean([])); // true