网站首页 > 技术文章 正文
上节知识点回顾:
- 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()
猜你喜欢
- 2025-05-02 对象 (基础详解)(对象指的是)
- 2025-05-02 JavaScript的核心易错点知识梳理(js的重点)
- 2025-05-02 网络钓鱼攻击使用隐形Unicode Trick隐藏JavaScript
- 2025-05-02 本想搞清楚ESM和CJS模块的转换问题,没想到写完我的问题更多了
- 2025-05-02 19个基本的JavaScript面试问题及答案(都是实用技巧)免费送
- 2025-05-02 day11:前端面试题(js)(前端面试题汇总.pdf)
- 2025-05-02 前端面试:JavaScript 中有几种数据类型?
- 2025-05-02 前端开发基础-JavaScript(三)(前端开发的基础)
- 2025-05-02 小白教你JavaScript 第二讲(javascript教程 csdn)
- 2025-05-02 JavaScript数据类型(javascript数据类型分哪几种)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)