首页 > 其他分享 >JS的数据类型

JS的数据类型

时间:2025-01-13 19:00:49浏览次数:3  
标签:console log 数据类型 JS var typeof 字符串

(一)、数据类型

1、为什么需要数据类型

在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。简单来说,数据类型就是数据的类别型号

2、变量的数据类型

JS是一种弱类型或者动态语言。这就意味着不用提前声明变量的类型,在程序运行过程中,变量的数据类型是根据等号右边的值来自动确定的。

JS拥有动态类型,同时也意味着相同的变量可用作不同的类型

3、数据类型的分类

简单(一般)数据类型(Number、String、Boolean、Udefined、Null)

复杂(引用)数据类型(Object)

后续还会再增加别的数据类型....

(二)、简单数据类型

简单数据类型

解释说明

默认值

Number

数字型,包含整数值和浮点型,如12,1.2

0

Bollean

布尔值类型,true、false,等价于1、0

false

String

字符串类型,如'王二麻',字符串都带引号

''

Undefined

未定义,例如: var a;此时a=undefined

undefined

Null

空值;例如:var a=null

null

1、数字型 Number

1)、数字型进制

常见的进制有二进制、八进制、十进制、十六进制,在JS中,八进制前面加0,十六进制前面加0x

2)、数字型范围(JS中数值的最大值和最小值)

Number.MAX_VALUE //1.7976931348623157e+308

如果使用Number表示的数字超过了最大值,则会返回一个Infinity 表示正无穷

使用typeof 检查infinity也会返回number

Number.MIN_VALUE 大于0的最小值 //5e-324

NaN 是一个特殊的数字,表示Not A Number, 非数值

使用typeof 检查NaN也会返回number

<script>
      var a = 123;
      a = 456.789; //下面的数值会覆盖上面的
      var b = 123; //这是数字123
      console.log(typeof a); //number

      a = Number.MAX_VALUE; //最大值
      // console.log(a)

      a = Number.MIN_VALUE; //最小值
      //  console.log(a)

      a = "abc" * "bcd";
      //console.log(a); //NaN
    </script>

3)、数字型计算

在Js中整数的运算基本可以保证精确

如果使用JS进行浮点元素,可能得到一个不精确的结果

<script>
      var c = 1 + 2; 
      console.log(c);//3

      var d = 0.1 + 0.2; //如果使用JS进行浮点元素,可能得到一个不精确的结果
      console.log(d);//0.30000000000000004
    </script>

4)、isNaN()方式

用来判断NaN,并返回一个布尔值,如果判断的是NaN,则返回true,如果判断的不是NaN,则返回false

console.log(isNaN(123));//false

console.log(isNaN(NaN));//true

5)、typeof 来检查一个变量的类型,并输出

语法:typeof 变量

检查字符串时,会返回string; 检查数值时,会返回number

2、字符串String

1)、基本语法

字符串型可以是引号中的任意文本,其语法为双引号“”和单引号‘’,一般js中建议用单引号‘’,js可以用单引号嵌套双引号,或者用双引号嵌套单引号

<script>
    // 单双引号嵌套
    var res = '古诗:"锄禾日当午"';
    console.log(res);
    </script>

2)、字符串转义符

转义符都是\开头的,,写在当单双引号里面的,常用的转义符及其说明如下

转义符

解释说明

\n

换行符,n表示newline的意思

\\

斜杠\

\'

'单引号

\"

"双引号

\t

tab缩进

\b

空格,b是blank的意思

<script>
      //转义字符
      var str = "hello";
      str = " \''你好 ";
      console.log(str,'11');
    </script>

3)、字符串长度

字符串是由若干字符组成的,这些字符的数量就是字符串的长度。length属性可以获取整个字符串的长度

4)、字符串拼接

多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任意类型=拼接新字符串 ;

拼接前会把字符串相加的任意类型转成字符串,再拼接成一个新的字符串;

5)、字符串拼接变量

字符串和变量拼接,变量不能写在引号里面,需要用加好拼接变量

 eg:"你好"+age+"hlleo"

<script>
      var age = 18;
      vartr = "我今年18岁了";
      str = "我今年" + age + "岁了";
      console.log(str);
    </script>
3、布尔值 Boolean

布尔值只有两个值,用来做逻辑判断

true -表示真 false -表示假

使用typeof检查一个布尔值时,会返回boolean

当进行数值运算的时候,true为1,false为0

4、未定义 Undefined

Undefined类型的值只有一个,就是undefined

当声明了一个变量,但是并不给变量赋值时,它的值就是undefined

使用typeof检查一个undefined时也会返回undefined

当进行数值运算时,结果为NaN

5、 空值Null

null这个值专门用来表示空的对象

使用typeof检查一个null值时,会返回object

当进行数值运算时,null为0

(三)、数据类型转换

使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接进行数值运算,需要将字符串转为数值类型

强制类型转换:指将一个数据类型强制转换为其他的数据类型

通常三种转换

转换为字符串类型

转换为数字型

转换为布尔型

1、转换为字符串类型

1)、toString()方法

-调用被转换数据类型的toString()方法 语法:变量.toString()

-该方法不会影响到原变量,它会将转换的结果返回 语法:str=变量.toString()

-注意:null和undefined这两个值没有toString的方法,如果调用他们会报错

<script>
      var a = 123;
      //调用a的toString()方法
      var b = a.toString(); //将a赋值转换结果赋值给b,再检查b
      a = a.toString(); //也可将a赋值转换结果赋值给a,再检查a
      console.log(typeof a);
      console.log(a);

      //    再举例
      var c = true;
      c = c.toString();
      console.log(typeof c);
      console.log(c);

      /* var d=null;
      d=d.toString();
      console.log(typeof d)//会报错

      var e=undefined;
      e=e.toString();
      console.log(typeof e) */ //会报错
    </script>

2)String()

-调用String()函数,并将被转换的数据作为参数传递给函数, 语法:String(变量)

-使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString的方法

但对于null和undefined,就不会调用toString()方法, 它会将null直接转换为"null", 将undefined 直接转换为"undefined"

<script>
      a = 789;
      //调用String()函数,来将a转换为字符串
      a = String(a);

      a = null;
      a = String(a);

      a = undefined;
      a = String(a);

      console.log(a);
      console.log(typeof a);
    </script>

3)拼接字符串(隐式转换)

和字符串拼接的结果都是新字符串,语法:变量+''

<script>
     var f=123
      f=f+''
      console.log(f,typeof f);
    </script>

2、转换为数字型(重点)

(1)、 使用Number()函数

字符串-->数字

1:如果是纯数字的字符串,则直接将其转换为数字

2:如果字符串中有非法的数字的内容,则转换为NaN

3:如果字符串是一个空串,或者全是空格的字符串,则转换为0

布尔值--->数字

true--1 false--0

Null --->数字 0

Undefined --->数字 NaN

(2)、parseInt()

可以将一个字符串中的有效的整数取出来,转换为Number

语法:parseInt(变量)

<script>
      a='123px';
      a=parseInt(a)//调用parseInt()函数,将a转换为Number
    </script>
(3)、parseFloat()

把一个字符串转换为一个浮点数数值型

语法:parseFloat(变量)

<script>
      a='123.345px';
      a=parseFloat(a);            
    </script>

注意:如果对非String使用parseFloat()跟parseInt(),它会先将其转换为String,然后再操作

<script>
      a=true;
      a=parseInt(a);//NaN     
    </script>
(4)、js隐式转换

利用算术运算- * / 隐式转换为数值型

<script>
      a = "123";
      a = a - 0;//123
      a = a / 1;//123
      a = a * 1;//123
      console.log(a, typeof a);   
    </script>

3、转换为布尔型

Boolean()函数,将其他类型转成布尔值

数字-->布尔除了0跟NaN是false,其他的都是true

字符串-->布尔除了空串是false,其余都是true

null和undefined都会转换为false

对象会转换为true

<script>
      var a = 123; //true
      a = -123; //true
      a = 0; //flase
      a = NaN; //flase
      a = Boolean(a); //调用Boolean()函数来将a转换为布尔值
      
      a = "false"; //true
      a = " "; //false
      
      a = null; //false
      a = Boolean(a);
      
      a = undefinde; //false
      
      console.log(typeof a);
      console.log(a);
      </script>

标签:console,log,数据类型,JS,var,typeof,字符串
From: https://blog.csdn.net/qq_46040001/article/details/145076485

相关文章

  • C#中的数据类型
    C#是一种强类型语言,无论是变量、常量,还是方法的参数、返回值,都需要指定相应的数据类型。从某种意义上来说,数据类型就像数据结构的模板,它包含了很多信息:一种数据类型所需要的内存空间;该数据类型的取值范围,即它可以表示的最大值和最小值;它所继承的基类信息;运行时它在内存......
  • React源码解析(1): JSX语法与react项目渲染过程
    好家伙 0.前言由于工作的需要,我不得不入手了react的全家桶,曾经我的主要技术栈是vue。从vue转到react,一开始我感到非常不适应,jsx的语法的不了解,reacthooks的使用方式,react路由的配置。。。这一度让我十分难受但在熟悉一段时间后,我逐渐领略到react的魅力,灵活的状态管理,渲染速......
  • uni-app pages.json
    pages数组:用于定义应用的页面路径、窗口表现、导航栏样式等,它列出了应用中所有的页面路径,并决定了这些页面的加载顺序和一些初始设置。pages数组中的每一项代表了一个页面的配置对象,通常包含以下属性:path(String):必填,表示页面的路径(相对于src或project根目录),不带后......
  • nvm安装nodejs多版本时显示 is not yet released or available的解决方案,并解决nvm ls
    nvm安装nodejs多版本时显示isnotyetreleasedoravailable的解决方案,并解决nvmlsavailable为空的问题首先执行nvmlsavailable来列出所有可供下载的版本,发现为空:解决方案执行下面这两行代码nvmnode_mirrorhttps://npmmirror.com/mirrors/node/nvmnpm_mirr......
  • JAVA开源毕业设计 共享汽车管理系统 Vue.JS+SpringBoot+MySQL
    本文项目编号T125,文末自助获取源码\color{red}{T125,文末自助获取源码}......
  • JAVA开源毕业设计 计算机课程管理平台 Vue.JS+SpringBoot+MySQL
    本文项目编号T126,文末自助获取源码\color{red}{T126,文末自助获取源码}......
  • JS宏实例:拆分工作表
    一、确定拆分条件这里,以昨日合并后的数据为例。将其逆向操作,也就是按照班级将上一期的结果表进行拆分,并储存到新的工作簿中。数据源如下图所示:二、逻辑构思明确任务目的后,我们就能根据以往所学的知识构思实现方法。首先,我们需要获取数据源中的数据。可以利用Workbooks.Open......
  • THREE.js学习笔记3——Animations
    这一小节主要学习动画。在JavaScript中的动画,其实就是渲染一帧,停顿一会儿,再渲染一帧。所以我们需要在每一帧都更新物体和重新渲染。调用window.requestAnimationFrame();函数来实现。ThepurposeofrequestAnimationFrameistocallthefunctionprovidedonthenextframe......
  • Vue.js组件开发-如何使用moment.js
    在Vue.js组件开发中,需要处理日期和时间,moment.js是一个非常有用的库。moment.js提供了丰富的API来解析、验证、操作和显示日期和时间。步骤:1.安装moment.js首先,需要通过npm或yarn安装moment.js。在项目根目录下运行以下命令:npminstallmoment--save#或者yarnaddm......
  • JS宏实例:合并多个工作簿中的数据
    一、分析数据结构首先将要合并的工作簿放在同一个文件夹下面,方便操作。如下图所示:打开每个工作簿,查看数据结构。这里UP只做一个简单的示例,所以每个表的数据结构是完全相同的。如下图所示:明确数据结构之后,我们就可以梳理逻辑,考虑如何去实现这一功能。二、逻辑梳理1、打......