这里写目录标题
Javascript的数据类型
js数据类型整体分为两大类:
- 基本数据类型:
- number 数字型
- string 字符串型
- boolean 布尔型
- undefined 未定义型
- null 空类型
- 引用数据类型:
- object 对象
js是弱数据类型的语言,只有当我们赋值了,才知道是什么数据类型。
数据类型 —— 数字类型
即我们数学中学习到的数字,可以是正数、小数、正数、负数。
let age = 18 //整数
let price = 8.88 //小数
算数运算符:乘法(*)、除法(/)、加法(+)、减法(-)、取余(%)。
算术运算符优先级越高越先被执行,优先级相同时从左到右执行(先乘除后加减,有括号算括号)。
计算错误 —— NaN
NaN代表一个计算错误,它是一个不正确的或者一个未定义的数学操作所得到的结果。
例:console.log('abc' - 2) // NaN
Nan是粘性的,任何对NaN的操作都会返回NaN。
例:console.log(NaN + 2) // NaN
数据类型 —— 字符串类型
通过单引号(')、双引号(")、反引号(`)包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
注意事项:
- 无论什么引号都必须成对使用
- 单引号/双引号可以互相嵌套。但不能自己嵌套自己(外双内单或外单内双嵌套)
- 必要时可以用转义字符 \ ,输出单引号或双引号
console.log("有'蜘蛛'") //有'蜘蛛'
console.log('有"蜘蛛"') //有"蜘蛛"
console.log('有\'蜘蛛\'') //有'蜘蛛'
字符串拼接:运用 + 运算符实现字符串的拼接
let age = 19
console.log('我今年' + age + '岁了')
模板字符串:运用反引号拼接字符串和变量,内容拼接变量时,用${}
包住变量
let name = '张三'
let age = 19
document.write(`大家好,我叫${name},今年${age}岁了`)
数据类型 —— 布尔类型
表示肯定或否定时在计算机中对应的时布尔类型数据。
它有两个固定的值 true 和 false ,表示肯定的数据用 true (真),表示否定的数据用 false (假)。
数据类型 —— 未定义类型
只声明变量,不赋值的情况下,变量默认为undefined,一般很少直接为某个变量赋值undefined。
let a
console.log(a) // undefined
数据类型 —— null(空类型)
javascript中的null仅仅是一个代表“无”、“空”或“值未知”的特殊值。
null和undefined的区别:
- undefined表示没有赋值
- null表示赋值了,但是内容为空
console.log(undefined + 1) // NaN
console.log(null + 1) // 1
null开发中的使用场景:把null作为尚未创建的对象。
检测数据类型
typeof运算符可以返回被检测的数据类型。它支持两种语法形式:
- 作为运算符:typeof x(常用的写法)
- 函数形式:typeof(x)
let num = 10
console.log(typeof num) // number
let str = 'asd'
console.log(typeof str) // string
let flag = false
console.log(typeof flag) // boolean
let obj = null
console.log(typeof obj) // object
let un
console.log(typeof un) // undefined
数据类型转换
javascript是弱数据类型的语言,所以变量属于哪种数据类型在赋值后才知道。
使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接进行加法运算(会被当做字符串拼接)。
此时,就需要转换变量的数据类型,就是把一种数据类型的变量转换成我们需要的数据类型。
隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
规则:
- 加号两边只要有一个是字符串,就会把另一个转成字符串
- 除了加号以外的算术运算符都会把数据转成数字类型
- 当加号作为正号时,会把字符串类型转变为正数类型
console.log(2 + 1) // 3
console.log('2' + 1) // 21
console.log(2 + '1') // 21
console.log('2' - 1) // 1
console.log('2' - '1') // 1
console.log(+'123' + 1) // 124
显式转换
编写程序时过度依靠系统内部的隐式转换是不严谨的,因为隐式转换规律不清晰,大多是靠经验总结的规律。
转换为数字型:
- Number(数据)
- 转成数字类型
- 如果字符串内容里有非数字,转换失败是结果为NaN
- NaN也是number类型的数据,代表非数字
- parseInt(数据)
- 只保留整数
- 如果在数字前有别的字符,转换失败,返回NaN
- parseFloat(数据)
- 可以保留小数
- 如果在数字前有别的字符,转换失败,返回NaN
//显示转换Number的语法
let num1 = Number(prompt('输入年薪'))
console.log(num1)
let num2 = prompt('输入年薪')
console.log(Number(num2))
let num3 = +prompt('请输入')
console.log(Number(num3))
console.log(parseInt('12px')) // 12
console.log(parseFloat('12.94px')) // 12.84
console.log(parseInt('abx12px')) // NaN
console.log(parseFloat('sdf12.94px')) // NaN
console.log(parseFloat('12.94px22')) // 12.94