js的基础知识 ——— 数据类型的介绍与应用
一、js的基本数据类型
1. Numbr类型(数字类型)
- 不区分整数浮点数 (100 200 1.1 0 -6 -999 都是数字)
var a = 100
2. String类型(字符串类型)
-
只要是引号包裹的内容, 就是字符串类型(引号不区分单双引号)
var str1 = '你好' var str2 = "asd" var str3 = 'qwer'
3. undefined类型(未定义类型)
-
变量只定义, 不赋值的时候, 默认的值就是 undefined 表明未定义
-
他是一个数据, 表明未定义
var str1 = '你好' var str2 = "asd" var str3 = 'qwer'
4. Boolean类型(布尔类型)
- 只有两个值:true false (后续主要用在判断上)
var boo1 = true // 定义一个变量, 名为 boo1, 值为布尔值, true var boo2 = false // 定义一个变量, 名为 boo2, 值为布尔值, false
5. Null类型
- 本身是一种数据类型, 只不过代表的是 空(啥也没有)
- Null 和 undefined 不同!!!
- 使用场景: 在创建 对象 的时候, 如果开始不知道对象内部有什么, 可以给一个 null
var nu = null // 定义一个变量, 名为 nu, 值为 null类型, 代表空 console.log(nu)
二、js数据类型检测
- 通过 typeof,去检测数据类型的值是什么
- 语法: typeof (要检测的数据类型的值)
- 注:typeof 的问题, 不能正确检测出 null 这个类型的实际类型, 检测 null 的时候打印结果为 object
- null 代表的含义是 空, 也就是空对象, 所以 typeof 会把他当成一个对象去输出
var str1 = '100' var str2 = 100 var str3 var str4 = true var str5 = false var str6 = null console.log(typeof(str1)) // string console.log(typeof(str2)) // number console.log(typeof(str3)) // undefined console.log(typeof(str4)) // boolean console.log(typeof(str5)) // boolean console.log(typeof(str6)) // object
三、js数据类型转换
1. 转数字类型
-
Number (数据) ———— 可以用于任何数据类型, 将其转换为 数字类型
- 字符串转数字
- 如果转换的字符串是纯数字组成的, 那么直接转换为数字
- 如果转换的字符串是空字符串或者空白字符串, 那么直接转换为数字0
- 其他类型的字符串,如果不是空/空白/纯数字字符串,会转换为 NaN *注:NaN表示的是一个 number 的数字, 但是没有办法通过常规的数字表明它, 所以只能使用 NaN 来代替
- 布尔值转数字
- true 转换为 1
- false 转换为 0
- undefined 转数字
- 会直接转换为 NaN
- null 转数字
- 会直接转换为 0
- 字符串转数字
-
parseInt (数据) ———— 转换为整数
- 会将数据转换为 number类型, 并且值是整数(直接忽略掉小数点以后的值, 并不是四舍五入)
- 在转换的时候, 如果数据是纯数字的字符串或者是数字开头的字符串, 那么会转换为数字, 否则就是转换为 NaN
-
parseFloat (数据) ———— 转换为小数
- 转换结果于 parseInt 类似, 但是在转换小数的时候会保留小数点后的数字
-
简便方法:(数据)- 0
//number console.log(typeof(Number('100')),Number('100')) //number 100 //字符串转数字 var asd console.log(typeof(Number('asd')),Number(asd)) //number NaN //布尔转数字 console.log(typeof(Number(true)),Number(true)) //number 1 console.log(typeof(Number(false)),Number(false)) //number 0 // undefined console.log(typeof(Number(undefined)),Number(undefined)) //number NaN // null转数字 console.log(typeof(Number(null)),Number(null)) // number 0 // 整数 console.log(typeof(parseInt('100')),parseInt('100')) console.log(typeof(parseInt('100aaa')),parseInt('100aaa')) console.log(typeof(parseInt('100.11')),parseInt('100.11')) console.log(typeof(parseInt(' ')),parseInt(' ')) console.log(typeof(parseInt('true')),parseInt('true')) // 浮点数 console.log(typeof(parseFloat('100')),parseFloat('100')) console.log(typeof(parseFloat('100aaa')),parseFloat('100aaa')) console.log(typeof(parseFloat('100.11')),parseFloat('100.11')) console.log(typeof(parseFloat('true')),parseFloat('true')) console.log(typeof(parseFloat('')),parseFloat('')) // 扩展 -0 console.log(typeof('100'), '100') // string 100 console.log(typeof('100' - 0), '100' - 0) // number 100 console.log(typeof('100.99' - 0), '100.99' - 0) // number 100
2. 转字符串类型
-
变量.toString()
- 注意: S 是大写的
- 注意: undefined 类型 和 null 不能使用 toString 方法
-
String(变量)
- 什么类型都可以转换为字符串类型的, 包括undefined 和 null 类型
-
简便方法:(数据)+ ' '
var str1 = 100 var str2 = true var str3 = false var str4 = undefined var str5 = null // 变量.toString() console.log(typeof(str1.toString()),str1.toString()) console.log(typeof(str2.toString()),str2.toString()) console.log(typeof(str3.toString()),str3.toString()) console.log(typeof(str4.toString()),str4.toString()) console.log(typeof(str5.toString()),str5.toString()) // String(变量) console.log(typeof(String(str1)),String(str1)) console.log(typeof(String(str2)),String(str2)) console.log(typeof(String(str3)),String(str3)) console.log(typeof(String(str4)),String(str4)) console.log(typeof(String(str5)),String(str5)) //(变量)+ ' ' console.log(typeof(str1 + ''),str1 + '') console.log(typeof(str2 + ''),str2 + '') console.log(typeof(str3 + ''),str3 + '') console.log(typeof(str4 + ''),str4 + '') console.log(typeof(str5 + ''),str5 + '')
3. 转布尔类型
- Boolean (变量) ———— 将其他数据类型, 转换为布尔值
- 注1:数字转换布尔值, 只有0会转换为 false 其他的数字都会转换为 true, (非0即为真)
- 注2:字符串转换布尔值, 只有 空字符串 会转换为 false 其他的字符串都会转换为 true
- 注3. undefined 和 null 转换为布尔值的false
var num1 = 100 var num2 = 0 var num3 = -1 console.log(num1,Boolean(num1)) // true console.log(num1,Boolean(num2)) // false console.log(num1,Boolean(num3)) // true var str1 = '' var str2 = ' ' var str3 = 'abc' console.log(str1, '-->', Boolean(str1)) // false console.log(str2, '-->', Boolean(str2)) // true console.log(str3, '-->', Boolean(str3)) // true var und = undefined var nul = null console.log(und, '-->', Boolean(und)) // false console.log(nul, '-->', Boolean(nul)) // false