数据类型
约 977 字大约 3 分钟
2024-07-07
数组类型解释
数据类型用来在计算机中标记程序的运算规则
数据类型分类
警告
变量名仅用于演示,实践中不要用a、b、c命名
基本数据类型:数字类型、字符串类型、布尔类型、undefined、null
引用数据类型(复杂类型):对象
数字类型
笼统的讲,最后的值是实数都可算作数字类型
let a = 2728737;
let b = -3.4345456;
let c = 3*3;
let d = Math.sqrt(2); //根号2
// typeof判断数据类型
typeof(a);
typeof(b);
typeof(c);
typeof(d);
数字类型计算过程按照初等数学运算规则计算,即先乘除再加减,有括号先算里面的
字符串类型
遇到除加号以外的符号,那么计算机先将字符串转换为对应的数字,然后再计算
布尔类型
警告
请不要加上引号
let a = true;
let b = false;
typeof(a);
typeof(b);
其他数据类型
相关信息
由于历史原因,Javascript设计者Brendan Eich(他本人还健在)弄了两个看起来很像的null和undefined,它们都表示空值,但数据类型不同
null
注意
还记得Javascript对大小写敏感吗?不要写成NULL、Null
undefined
提示
出现undefined说明代码可能存在错误
根据ECMAScript规范,用undefined表示变量未声明就使用、变量未初始化(会产生脏值)、调用函数却不给参数、给对象添加没有的属性、函数没有返回值等,且在布尔运算中被视为假值。
数据类型转化
隐式类型转换
隐式类型转换原理建议翻看Kevin的一次搞懂JavaScript类型隐式转换 - 掘金 (juejin.cn)
ECMAScript 5.1版本(ES5)第九章解释了Javascript会以ToPrimitive(转换为最初值)、ToBoolean(转换为布尔类型)、ToString(转换为字符串)、ToNumber(转换为数字类型)自动处理需要的数据类型
+运算
let a = 1, b = '1';
console.log(a+b);
注意
计算机在数学运算中发生隐式类型转换
let a,b = '1'
console.log(typeof(a-b))
如果加号也希望出现隐式类型转换,将+
写在数值的前面
let a = '1'
let b = 1
console.log(+a + b)
布尔值参与运算
console.log(1 == true);
console.log(0 == false);
强制类型转换
相关信息
用户自己强制转换为需要的类型
转换为数字类型
Number()
let year = '2020';
year = Number(year);//转换并再次赋值给year
console.log(typeof(year));
parseInt()
提示
是parse和integer的合写
let mixType = '1.2asdf';
int = parseInt(mixType);
console.log(typeof(int));
parseFloat()
let mixType = '1.2asdf';
float = parseInt(mixType);
//用Number()转换效果一样
console.log(typeof(float));
转换为字符串类型
let movie = 2012;
//方法1
String(movie);
//方法2
movie.toString();
String()和变量名.toString()区别
let a = undefined;
a = String(a);
console.log(typeof(a));
a = a.toString();
console.log(typeof(a));
逻辑运算符短路运算
如果是 && 运算只要遇到 false,就立即短路,不会再执行了,直接返回当前值
如果是 || 运算只要遇到 true,立即短路,不会再执行了,直接返回当前值
console.log(1 || 2); // 1
console.log(0 || '' || 2 || 3); // 2
console.log(1 && 0 ); // 0
console.log( 1 && 2); // 2
console.log(0 && 1 || 2);
console.log("" || 0 && 2); // 0
数据类型存储
堆和栈来自计算机数据结构
数据类型 | 举例 | 存储方式 |
---|---|---|
简单类型 | 数字、字符串、布尔、undefined | 栈 |
引用类型 | 对象 | 堆 |
更新日志
版权所有
版权归属:passwordgloo