数据类型:
数字型 number(整数,小数 正负数)
字符串 string ,使用引号‘’ 双引号“”或者反引号`包裹的都叫字符串
布尔型 boolean 只有两个值(true,false)
未定义型 undefined --只声明变量 不赋值的情况下
null 空类型 赋值了 但是内容为空
JS是弱数据类型,;变量只有赋值后 才知道是哪种类型;
数据类型的检测:
typeof 关键词配和console.log使用
可以判断春这个值或者变量是个什么类型的
console.log(typeof 18) // number
console.log(typeof 'ls') // string
console.log(typeof true) // boolean
let age
console.log(typeof age) // undefined
数据类型的转换
1.隐形转换:某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
规则:+号两边只要有一个是字符串,都会把另一个转换成字符串
除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型
技巧:+号作为正号解析可以转换成Number
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 隐式转换</title>
</head>
<body>
<script>
let num = 13; // 数值
let num2 = '2'; // 字符串
// 结果为 132
// 原因是将数值 num 转换成了字符串,相当于 '13'
// 然后 + 将两个字符串拼接到了一起
console.log(num + num2);
// 结果为 11
// 原因是将字符串 num2 转换成了数值,相当于 2
// 然后数值 13 减去 数值 2
console.log(num - num2);
let a = prompt('请输入一个数字');
let b = prompt('请再输入一个数字');
alert(a + b);
</script>
</body>
</html>
另外计算连写的话 字符串后面的都会看成字符串相加 字符串前面的有基础运算的话 先算 然 后再转换成字符串连写
document.write('10'+10+'10'+10) //最后控制台输出的是 10101010
document.write(10+10+'10'+10) //最后控制台输出的是 201010
2.显式转换:自己写代码告诉系统该转成什么类型
console.log(Number(数据))如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字script> // 转换为数字:只有两种结果 要么数字 要么NaN // let str = '1234' // 1234 // let str = '1234abcd' // NaN Not a Number 它不是一个数字 // console.log(Number(str)) // let flag = true // 1 // let flag = false // let age // undefined == NaN let age = null // 0 console.log(Number(age)) </script>
parseInt 从一个字符串中提取整数 ,如果这个字符串第一个字符不是数字 直接得到NaN 如果第一个字符是数字 则遇到了非数字就停止提取
parseFloat 从一个字符串中提取整数和小数 ,如果这个字符串第一个字符不是数字 直接得到NaN 如果第一个字符是数字 则遇到了非数字就停止提取
console.log(String(值));或者 变量.toString(进制) 2种方法
Boolean型 --里面的数据为下方
字符串类型:空字符串会转成false 其他的都会被转换成true
数字类型:0与NaN会转换成 false 其他的都会被转换成true
undefined类型:会被转换成false
null 类型:会被转换成false