JavaScript 数据类型 及 转换
什么是数据类型
数据类型是数据在内存中的储存结构。
不同类型的数据,具有不同的特性,可执行不同的操作。
number 类型 - 数字类型
数字类型,专门保存所有数字的数据类型。
既可以表示整数,也可以表示浮点数,一个数字占8个字节。
数值的大小和存储空间无关。
- 注意:默认不加引号的类型全是数字类型。
常用方法
- number.toString(2/8/10/16...); // 以某种进制转换数字
- number.toFixed(2....); // 四舍五入到小数点后几位
案例代码 number.toString(2/8/10/16...);
<script>
var num1 = 7;
console.log(num1.toString(2)); // 将num1转换为二进制,toString括号中写几就是几进制。
</script>
案例代码 number.toFixed(2....);
<script>
var price = 1.6;
var money = 2;
var back = money - price;
console.log(back.toFixed(2)); //四舍五入到小数点后两位
</script>
string 类型 - 字符串类型
字符串类型,专门保存一系列文本字符的数字类型。
以引号包裹,单引号或双引号均可。
一个数字字符或英文字符占1个字节。
一个汉字占两个字节。
所有字符串的文字都采用 Unicode 编码。
特殊字符需要转义: \" 双引号; \' 单引号; \n 换行; \t Tab(制表符);
- 被引号包裹的一切都是字符串类型。
字符串代码案例
<script>
var str1 = "welcome";
var str2 = "123";
var str3 = "王佳伟";
</script>
console.log("专门保存一系列的\"文字字符\"的数据类型"); console.log("专门保存一系列的\n文字字符的数据类型"); console.log("专门保存一系列的\t文字字符的数据类型");
boolean 类型 - 布尔类型
布尔类型,表示真或者假。
仅有两个值:true / false。
运算中, true =1 , false = 0 。
代码案例
<script>
var isHot = true;
var isCool = false;
</script>
undefined 和 null
undefined
- 表示“不存在该数据”。
- 变量声明后从未赋值,或者对象的属性不存在。
null
- 表示“没有数据”。
案例代码
<script>
var people = undefined;
var box = null;
</script>
数据类型转换
数据类型转换,就是讲不想要的数据类型,转换为想要的数据类型。
JavaScript 是一种 弱类型 的脚本语言。
弱类型的特点:
- 声明变量时不必提前指定变量的数据类型。
- 变量有赋值操作确定数据类型。
- js 会根据自己的需要,动态转变数据类型。
查看当前数据的类型
typeof(data)
查看当前数据类型的代码案例
<script>
var people = "wjw"
var num =123 ;
var data = true;
console.log(typeof (people),typeof (num),typeof (data));
</script>
案例代码
<script>
var people = "wjw"
var num =123 ;
var data = true;
console.log(typeof (people),typeof (num),typeof (data));
data ="100";
num = "true";
people =123;
console.log(typeof (people),typeof (num),typeof (data));
</script>
结论:变量由赋值操作确定数据类型。
数据类型转换 - 隐式转换
隐式转换,是数据在计算过程中,自动完成的转换。
隐式转换代码案例
<script>
var str = "3";
var num = 2;
var bool =true;
console.log(
str - num , // 1
str * num , // 6
str / num // 1.5
);
</script>
代码案例
<script>
var str = "3";
var num = 2;
var bool =true;
console.log(
str + num // 32
);
</script>
总结:以算数计算为例
- 数字 + 字符串 :数字转换为字符串。
- 数字 + 布尔值:true 转化为1 ,false 转化为0 。
- 字符串 + 布尔值:布尔值转化为字符串的 true 或 false 。
- 布尔值 + 布尔值 :布尔值转化为数值 1 或 0 。
数据类型转换 - 强制类型转换
凡是从页面获得的值,都是字符串类型,所以下面的例子,用户输入自己现在的薪资,计算薪资加1000以后的值,会出问题!
<script>
var salary = prompt("请输入现在的薪资:") // 弹出一个输入框,假设输入200
salary = salary + 1000;
console.log(salary);
</script>
转为 number 类型
- Number(x) :可将纯数字组成的字符串或Boolean值转换为number。
- parseInt(str) :将 string 类型的数据转化为number ,去掉小数部分,下取整。
- parseFloat(str) :将string类型的数据转化为 number,保留小数部分。
parseInt() 和 parsFloat() 要求数字字符开头,可以去掉数字后面的非数字字符。
如果转化不了数字,结果为 NaN (Not a number 缩写),NaN 参与任何数计算,结果依然是 NaN。
开始例子修改
<script>
var salary = prompt("请输入现在的薪资:") // 弹出一个输入框
// salary = parseInt(salary) + 1000; // 假设现在薪资输入 200
// salary = Number(salary) + 1000;
salary = parseFloat(salary) + 1000;
console.log(salary);
</script>
parseInt 代码案例 数字字符开头,可以去掉数字后面的非数字字符
<script>
var width ="100px";
width = parseInt(width) + 50 ;
console.log(width) // 150
</script>
<script>
var width ="13点15分";
width = parseInt(width) ;
console.log(width)
</script>
<script>
var width ="今天16";
width = parseInt(width) ;
console.log(width)
</script>
<script>
var width =true;
width = parseInt(width) ;
console.log(width)
</script>
注意:Number() 一般不会主动使用,因为隐式转换默认就是用的 Number() 方法,我们自己编程主要是用 parseInt() 和 parseFloat() 方法进行转换。
转为 string 类型
- String(x) :将任意内容转为字符串。
- x.toString() :将任意内容转为字符串,除 null 和 undefined 之外。
案例代码
<script>
var n =20 ;
console.log(String(n));
console.log(n.toString());
</script>
<script>
var n;
console.log(String(n));
console.log(n.toString());
</script>
转换为 Boolean 类型
- Boolean(x) :将任意类型的值转为 Boolean 类型 true / false。
只有五个值会被转为 false:
0、 ""、 null、 undefined、 NaN
其余的值,全部转化为 true。
结束!收工~!
来源:CSDN
作者:JayveeWong
链接:https://blog.csdn.net/weixin_42776111/article/details/104574372