Js基础数据类型有7种:
原始数据类型(6种)
number (数值)
string (字符串)
boolean (布尔)
null (空对象, typeof 检测为object)
undefine(未定义)
symbol (符号类型)
对象数据类型(1种)
object(对象类型)
补充:
NaN
表示 not a number;
function
本质为 object, 但由于其特殊的地位, typeof会检测为 function;
symbol
为ECMAScript6 新定义的数据类型, 符号类型是唯一的并且是不可修改的, 并且也可以用来作为Object的key的值
转换为字符串
.toString()
无法将null, undefine转为字符串String()
可以将null, undefine转为字符串
// 变量已经被赋值console.log("变量已经被赋值的情况:"); (function test01(){ var name = "zhaozhao"; console.log(String(name)) console.log(name.toString()) })();// 变量没有被赋值console.log("变量没有被赋值的情况:"); (function test02(){ var name; console.log(String(name)) console.log(name.toString()) })();
运行结果
转换为数值
parseInt()
强转为整数
// 强转为整数console.log("====")console.log(parseInt("100")); // 100console.log(parseInt("100zhaozhao")); // 100console.log(parseInt("zhaozhao100")); // NaNconsole.log(parseInt("100zhaozhao100")); // 100console.log(parseInt("100.18zhaozhao")); // 100
parseFloat()
转为浮点数(不会把整数转换为浮点数)
// 转为浮点数(不会把整数转换为浮点数)console.log("====")console.log(parseFloat("100")); // 100console.log(parseFloat("100zhaozhao")); // 100console.log(parseFloat("zhaozhao100")); // NaNconsole.log(parseFloat("100zhaozhao100")); // 100console.log(parseFloat("100.18")); // 100.18console.log(parseFloat("100.18zhaozhao")); // 100.18
Number()
转换为数值, 较严格
// 转换为数值console.log("====")console.log(Number("100")); // 100console.log(Number("100zhaozhao")); // NaNconsole.log(Number("zhaozhao100")); // NaNconsole.log(Number("100zhaozhao100")); // NaNconsole.log(Number("100.18")); // 100.18console.log(Number("100.18zhaozhao")); // NaN
运行结果
转换为布尔
// 布尔类型的转换// 除零以外的数字, 非空字符串 都为 trueconsole.log(Boolean(1))console.log(Boolean(-1))console.log(Boolean("哈哈"))// 0 ,空字符串, null, undefined都为falseconsole.log("====")console.log(Boolean(0))console.log(Boolean(""))console.log(Boolean(null))console.log(Boolean(undefined))
转换为布尔
快速获取boolean值的小技巧: 在变量前添加
2个!
,示例!!("zhaozhao") === true;
和!!("") === false
快速获取boolean
Chrome控制台字体大小控制:
- 字体变大:
command
++
- 字体变小:command
+-
(windows把command
转为ctrl
即可)