Javascript的数据类型

本文详细介绍了JavaScript中的各种基础数据类型,包括数字、字符串、布尔、未定义和null,以及如何检测数据类型、计算错误处理(NaN)、不同类型间的隐式转换和显式转换规则。
摘要由CSDN通过智能技术生成


Javascript的数据类型

js数据类型整体分为两大类:

  1. 基本数据类型:
    • number 数字型
    • string 字符串型
    • boolean 布尔型
    • undefined 未定义型
    • null 空类型
  2. 引用数据类型:
    • object 对象

js是弱数据类型的语言,只有当我们赋值了,才知道是什么数据类型。

数据类型 —— 数字类型

即我们数学中学习到的数字,可以是正数、小数、正数、负数。

let age = 18 //整数
let price = 8.88 //小数

算数运算符:乘法(*)、除法(/)、加法(+)、减法(-)、取余(%)。

算术运算符优先级越高越先被执行,优先级相同时从左到右执行(先乘除后加减,有括号算括号)。

计算错误 —— NaN

NaN代表一个计算错误,它是一个不正确的或者一个未定义的数学操作所得到的结果。

例:console.log('abc' - 2) // NaN

Nan是粘性的,任何对NaN的操作都会返回NaN。

例:console.log(NaN + 2) // NaN

数据类型 —— 字符串类型

通过单引号(')、双引号(")、反引号(`)包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。

注意事项:

  1. 无论什么引号都必须成对使用
  2. 单引号/双引号可以互相嵌套。但不能自己嵌套自己(外双内单或外单内双嵌套)
  3. 必要时可以用转义字符 \ ,输出单引号或双引号
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运算符可以返回被检测的数据类型。它支持两种语法形式:

  1. 作为运算符:typeof x(常用的写法)
  2. 函数形式: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

  • 54
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值