首页 > 其他分享 >JS数据类型&类型转换

JS数据类型&类型转换

时间:2024-09-27 17:35:26浏览次数:9  
标签:类型转换 false 数据类型 Number JS let 字符串 100 true

基本数据类型

JS中的数据类型由原始值和对象共同组成,原始值一共有七种原始值:

  1. 数值(Number)
  2. 大整数(BigInt)
  3. 字符串(String)
  4. 布尔值(Boolean)
  5. 空值(Null)
  6. 未定义(Undefined)
  7. 符号(Symbol)
数值和大整数

数值(Number):在js中所有的整数和浮点数都是number类型

let a = 3
let b = 3.1415926

在js中的数值不是无限大的,当数值超过一定范围后会显示近似值,如果再大一点,会显示科学计数法,如果数值再大超过可显示范围,会显示为Infinity,Infinity是一个特殊数值表示无穷

// js小数计算一定的精度限制,在大多数情况下,精度是足够的,对于某些特定的小数运算,可能会出现不精确的结果
a = 0.1 + 0.3 //  0.30000000000000004
a = 1 - "2" // NaN (Not a Number) ,NaN也是一个特殊的数值,表示非法的数值,数值和字符串做运算

大整数(BigInt):大整数用来表示一些比较大的整数,使用n结尾,可以表示的范围是无限大,取决于内存大小,小数无法使用大整数

// 数字后以n结尾,大整数不能和整数直接进行运算
a = 9999999999999999999n
字符串string

使用单引号或者双引号表示字符串

let a = "hello"
let b = 'world'

转义

字符串转义使用\反斜杠

a = "这是一个\"字符串\""

字符串不能直换行,如果换行需要+一个\

a = "这是一串\
字符串"

模版字符串

模板字符串使用反单引号表示``,模板字符串可以直接换行,字符串的换行、空格等效果会保留

a = `这是一串
字符
	串`

模板字符串可以嵌入变量,使用${变量名}语法

let a = "xiaoli"

let str = `name is ${a}` // name is xiaoli
布尔值boolean
let a = true
let b = false
空值Null

空值只有一个值null,用来表示空对象,typeof类型是object

let a = null
未定义

作用和空值类似,同样只有一个值undefine

let a  // 变量a未赋值,就是undefined
符号symbol

symbol用于创建一个符号,表示一个唯一标识

let a = Symbol()
原始值不可修改

原始值都是不可变的类型,值一旦创建就无法修改

let a = 100
a = 200 // 检查内存如果没有200的值,会创建一个200的值,然后a指向200的内存地址,并不会修改原先的100

image-20240924191019441

类型检查

js使用typeof检查的类型

typeof 检查的是变量存储的值的类型,变量是没有类型的

    let a = 100
    
    console.log(typeof a) // number

类型转换

转换为字符串

toString()

let a = 100
a.toString() // 作用是新创建一个100的字符串,并不是数值100变为字符串100
console.log(typeof a) // number
a = a.toString() // 创建一个字符串 赋值给a a变为string
console.log(typeof a) // string

null、undefined没有toString方法,无法转换字符串,会报错,其他可以通过该方法转换字符串

String()

let a = 100
string(a)  // a 是 number
a = String(a) // a是string,与toString原理一样

使用String(parm) 方法,null、undefined会转换成字符串null、undefined

转换为数值

Number()

let n = "100"
Number(n) // string
n = Number(n) // number

如果转换源是一个合法的数字,会正常转换,如果不合法,则转换成NaN

如果是空字符串或者只包含空格的字符串,则会转换成0

parseInt() / parseFloat

  // 只支持字符串类型,不支持其他类型,Number支持其他类型
    
    a = parseInt(a) // 将字符串转换为整数
    



let a = "123pppp"
a = parseInt(a) // a = 123,解析时会从左往右解析,获取合法数字,遇到非数字时终止,如果字符串是字母开头数字在后,则无法解析到数字

parserInt与Number的区别:Number只能解析合法的数据以及字符串以外的类型,parse只能解析字符串,但是可以解析不合法的数据

如果传入的参数不是字符串,则会先将参数转换为字符串,再进行解析,无法解析小数位之后的数字,如果123.456,会解析成数字123

a = parseFloat(a) // 原理逻辑与parseInt一致
转换为布尔

数字

let a = 1
a = Boolean(a) // true

let b = 0

b = Boolean(b) // false

在数字中,除了0和NaA是false,其余都是true

a = true // 1
a = false // 0

a = Infinity //true
a = -1 // true
a = 100 //true
a = 0 // flase
a = NaN // false


字符串

空字符串是false,其余都是true

let a = "" // false

let b = "    " //true

其余null和undefined都会转换为false

对象通常都会转换为true

转换为null和undefined
a = null
a = undefined

image

标签:类型转换,false,数据类型,Number,JS,let,字符串,100,true
From: https://www.cnblogs.com/Mickey-7/p/18436246

相关文章

  • Pbootcms程序模板被黑有可能是你的JS版本问题!
    当PbootCMS模板出现被黑的情况时,除了考虑程序本身的漏洞外,前端资源(如JS库)也可能成为攻击的入口。以下是具体的防护措施和建议:防护方法检查前端资源版本:确认前端JS库的版本是否过低。过低的版本可能存在已知的安全漏洞。更新前端JS库到最新版本,确保安全性和兼容性。备......
  • c语言数据类型和变量(下)
    2,变量C语⾔中把经常变化的值称为变量,不变的值称为常量。创建变量的语法形式:data_typename; ||||数据类型变量名变量在创建的时候就给⼀个初始值,就叫初始化。intage=18;charch='w';doubleweight=48.0;unsignedintheight=100;2.2变量的分类•全......
  • c语言数据类型和变量(上)
    C语⾔数据类型和变量数据类型介绍常见来说,使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。C语言的数据类型分为内置类型和自定义类型,这里主要介绍内置类型。1.1字符型(char)char//character[signed]char//有符号的unsignedchar//⽆符号的1......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    任务1:1#include<stdio.h>23intmain(){4printf("OO\n");5printf("<H><H>\n");6printf("IIII\n");7return0;8} 1#include<stdio.h>23intmain(......
  • 基于jspm电影票在线购票系统的计算机毕设源码+论文
    电影票在线购票系统设计与实现——基于jsp+sqlserver+tomcat【摘要】随着Internet的迅猛发展,当今社会已进入网络时代,计算机网络已经成为社会和经济发展的强大动力。与此同时,国内娱乐行业特别是电影行业也发展迅猛,电影票房屡创新高,为了能使大众更为便捷的购买到电影票,使影迷购票能够......
  • fastjson 反序列化
    fastjaon反序列化fastjson简介Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。具有执行效率高的特点,应用范围广泛。使用demo一、将类转换为json这里一般用的函数就是JSON.toJS......
  • 数据类型
    强类型语言要求变量的使用严格符合规定,所有变量都必须先定义后才能使用基本数据类型整数byte:一个字节(-128~127)short:两个字节int:4个字节long:8个字节long类型后面要加L浮点float:4个字节float类型后面要加Fdouble:8个字节字符类型char:2个字节注意:string不是......
  • 基于JSP大学校园景观档案管理系统设计与实现的计算机毕设源码+论文
    大学校园景观档案管理系统设计与实现摘要随着互联网的普及和迅速发展,人们对获取外界信息的实时性要求也有所提高。在校园里,无处不在充满着校园景观,而大学校园景观档案管理系统作为校园景观的提供者,其管理模式对学生的校园生活质量有着重要影响。针对校园景观大数据发布管理这一环......
  • js监听界面实现滑块自动验证
    functionsimulateMouseDown(target,options){varevent=newMouseEvent('mousedown',options);target.dispatchEvent(event);}functionsimulateMouseMove(target,options){varevent=newMouseEvent('mousemove',options);t......
  • 基于jspm大科树餐饮管理系统的计算机毕设源码+论文
    大科树餐饮管理系统设计与实现摘要随着社会的发展,各种餐饮店也日益增多,竞争也日益加剧,不论规模大小的餐饮店都需要在产品设置和服务细节上下功夫,提高自己的竞争力。这些都需要一套功能强大的系统做支撑,单纯人力不一定能满足快速、高效、人性化的需要。通过餐饮管理系统实现了餐饮......