优秀的编程知识分享平台

网站首页 > 技术文章 正文

JS学习笔记:三、数据类型(js数据类型有)

nanyue 2025-05-02 20:18:46 技术文章 3 ℃

上节知识点回顾:

  • 1.什么是变量
  • 2.变量的声明
  • 3.一次性声明多个变量并赋值
  • 4.变量名的规范
  • 5.变量的使用

本讲内容:数据类型

1.数据类型分类

  • 原始类型(基本类型)+引用类型
  • 原始类型:数字 、字符串 、布尔类型、 空、 未定义

1.1 数字类型【整数+浮点数】

  • 也叫number类型:只由数字和.组成 (姑且这么认为)

整数:

  • 如1、2、3
  • 整数的进制:十进制、八进制、十六进制(常用:颜色值)

浮点数:

  • 即小数
  • 如 3.1415926

1.2 字符串类型

  • 也叫string类型 :由unicode字符、数字、标点组成
  • unicode下所有的字符、数字、标点在内存中都占2个字节

以百家姓第一个字赵为例:

  • "赵".charCodeAt().toString(16)

运行结果:'8d75'



  • 汉字的开始字符:\u4e00
  • 汉字的开始字符:\u9fa5

转义字符:

  • \n换行
  • \r 回车
  • \t 一个制表符

1.3 boolean 布尔类型

作用:用于表示条件的结果

取值:

  • true:真
  • false: 假

扩展:布尔类型数据在做运算时:true=1,flase=0;

看下面的示例:

  • var r1=true;
  • var r2=false;
  • console.log(r1);
  • console.log(r2);
  • console.log(r1+r2);
  • console.log(r1+r1+r2);



1.4 空:null

表示:声明对象未赋值


1.5 undefined:未定义

  • 声明对象未赋值
  • 访问对象不存在的属性



2.数据类型转换

2.1 数据类型转换的必要性

js是弱类型语言,是由变量的值来决定变量的数据类型

  • var stu1; -->undefined
  • var stu2 = 25; -->number
  • var stu3 = "25"; -->string

那么不同类型的数据在运算过程中如何处理?

我们看这样一个例子:

  • var num1=15;
  • var num2=13;
  • var r1=num1+num2;
  • var str1="15";
  • var r2=str1+num2;

分别查看r1与r2的类型:typeof()、typeof

  • console.log(typeof(r1));
  • console.log(typeof(r2));

结果表明:

  • 数字+数字=数字 r1:number
  • 字符串+数字=字符串 r2:string

r1和r2的数据类型不同 为什么呢? 这里存在一个隐式转换


2.2 隐式转换

如何判断一个数据的类型?

【方法:typeof()、typeof】

我们先了解typeof()结果的一些名词

  • NaN:not a number的缩写,表示该数据不是一个数字
  • isNaN:判断是否为”非数字“
  • 其结果是个布尔值:
  • true:不是一个数字
  • false:是数字

那么现在再回顾一下刚r1与r2的类型结果




注意:所有数据类型与string做+运算时,最后结果都是string



2.3 强制转换

当我们想把某个数据主动的改为其他类型的数据时,就用到了强制转换,强制转换就像之前数据线转接头,本来安卓的,接上一个type-c头,就可以给type-c的手机充电了;



2.3.1 toString() 将数据强制转换为string类型

具体方法为:函数名.toString()

原理:类似在原数据基础上做了一个+运算,+了一个空字符串

  • var num=15;
  • var str=num+" ";

2.3.2 parseInt() 获取制定数据转换为整数

语法:var resule=parseInt(数据)

注意:这里的数据可能是一个变量,也可能直接就是一个值

parseInt():从左向右依次转换,直到碰到第一个非数字的数据停止转换,如果第一个字符就是非数字的话,结果为NaN

代码示例

  • var r1=parseInt("18.18");
  • var r2=parseInt("18.18hello");
  • var r3=parseInt("18.1hello8");
  • var r4=parseInt("hello18.18");

我们看下打印结果:

  • console.log(r1);
  • console.log(r2);
  • console.log(r3);
  • console.log(r4);




2.3.3 parseFloat() 将指定数据转换为小数

语法:var resule=parseFloat(数据);【同parseInt()】


代码示例:

  • var r1=parseFloat("18.18");
  • var r2=parseFloat("18.18hello");
  • var r3=parseFloat("18.1hello8");
  • var r4=parseFloat("hello18.18");

我们看下打印结果:

  • console.log(r1);
  • console.log(r2);
  • console.log(r3);
  • console.log(r4);



parseFloat():也是从左向右依次转换,直到碰到第一个非数字与"."的数据停止转换,同样的如果第一个字符就是非数字的话,结果为NaN


2.3.4 Number() 将一个字符串解析为number

语法:var r1=Number(数据); 【也与parseInt()相同】

注意:只要包含非法字符,就直接返回NaN

代码示例:

  • var r1=Number("18.18");
  • var r2=Number("18.18hello");
  • var r3=Number("18.1hello8");
  • var r4=Number("hello18.18");

我们看下打印结果:

  • console.log(r1);
  • console.log(r2);
  • console.log(r3);
  • console.log(r4);




本堂课总结:

数据类型

数据类型转换:隐式转换与强制转换

强制转换的方法:toString() 、parseInt()、parseFloat()、Number()

最近发表
标签列表