11-14JS数据类型转换成字符串数值布尔
2019-05-02 本文已影响2人
饥人谷_island
1.基本数据类型
Number 数值类型
在JavaScript中无论是整数还是小数都是属于数值类型的
String 字符串类型
在JavaScript中无论是通过单引号还是通过双引号括起来的内容都是属于字符串类型的
Boolean 布尔类型
在JavaScript中布尔类型比较特殊, 只有两个取值true/false
Undefined 未定义类型
在JavaScript中未定义类型比较特殊, 只有一个取值undefined
Null 空类型
2.引用数据类型
Object 对象类型
3.在JavaScript中为了方便我们检测某一种数据是属于哪一种数据类型的, JavaScript提供了一个名称叫做typeof的操作符
格式: typeof 需要检测的数据;
4.今天学习的数据类型和前面学习的常量之间的关系
猫科动物和狮子老虎豹子的关系
今天学习的数据类型就是猫科动物
前面学习的常量就是狮子老虎豹子
*/
/*
// 利用typeof检测123这个常量是属于哪一种数据类型的, 并且将检测的结果保存到res这个变量中
// let res = typeof 123;
let res = typeof 3.14;
console.log(res);
*/
/*
// let res = typeof 'abc';
let res = typeof "def";
console.log(res);
*/
/*
// let res = typeof true;
let res = typeof false;
console.log(res);
*/
let num;
// 以下代码的含义是输出num变量中保存的数据
// 由于没有给num这个变量进行初始化, 所以这个变量中保存的数据默认是undefined
console.log(num);
// 利用typeof检查num中保存的数据是什么类型的
// 也就是说利用typeof检查undefined是属于什么类型的
let res = typeof num;
console.log(res);
1.将Number类型转换为字符串类型
2.将Boolean类型转换为字符串类型
3.将undefined类型转换为字符串类型
4.将null类型转换为字符串类型
在JavaScript中如果想将以上的四种基本数据类型转换为字符串类型, 常用的方法有三种
1.对于Number类型和Boolean类型来说, 可以通过 变量名称.toString()的方式来转换
2.可以通过String(常量or变量);转换为字符串
3.还可以通过 变量or常量 + "" / 变量or常量 + ''转换为字符串
*/
/*
let value = 123;
console.log(value); // 在谷歌浏览器的控制台中如果是Number类型是蓝色的
console.log(typeof value);
// 以下代码的含义: 将value变量中存储的数据拷贝一份, 然后将拷贝的数据转换为字符串之后返回
let str = value.toString();
console.log(str); // 在谷歌浏览器的控制台中如果是String类型是灰色的
console.log(typeof str);
// 注意点: 变量名称.toString是对拷贝的数据进行转换, 所以不会影响到原有的数据
console.log(value);
console.log(typeof value);
// 注意点: 不能使用常量直接调用toString方法, 因为常量是不能改变的
let str2 = 123.toString();
*/
/*
let value = true;
console.log(value);
console.log(typeof value);
let str = value.toString();
console.log(str);
console.log(typeof str);
*/
/*
// let value1 = undefined;
// let str1 = value1.toString();
let value2 = null;
let str2 = value2.toString();
*/
/*------------------华丽的分割线------------------*/
/*
let value = undefined;
console.log(value);
console.log(typeof value);
// 以下代码的含义: 根据传入的数据重新生成一个新的字符串
let str = String(value);
console.log(str);
console.log(typeof str);
*/
/*
let value = null;
console.log(value);
console.log(typeof value);
let str = String(value);
console.log(str);
console.log(typeof str);
*/
/*
let value = 123;
console.log(value);
console.log(typeof value);
let str = String(value);
console.log(str);
console.log(typeof str);
*/
/*
// 注意点: 变量名称.toString()的方式前面不能是常量, 因为常量不能被改变
// String(常量or变量), 因为是根据传入的值重新生成一个新的值, 并不是修改原有的值
let str = String(123);
console.log(str);
console.log(typeof str);
*/
/*
let value = true;
console.log(value);
console.log(typeof value);
let str = String(value);
console.log(str);
console.log(typeof str);
*/
/*------------------华丽的分割线------------------*/
/*
let value = 123;
// let str = value + '';
let str = value + "";
console.log(str);
console.log(typeof str);
*/
let str = 123 + ''; // +''或者+""底层的本质其实就是调用String()函数
console.log(str);
console.log(typeof str);
1.将String类型转换为数值类型
- 如果字符串中都是数值, 那么就正常转换
- 如果字符串是一个空串""/" ", 那么转换之后是0
- 如果字符串中不仅仅是数字, 那么转换之后是NaN
2.将Boolean类型转换为数值类型
- true转换之后是1
- false转换之后是0
3.将undefined类型转换为数值类型
- 转换之后是NaN
4.将null类型转换为数值类型
- 转换之后是0
空字符串/false/null转换之后都是0
字符串中不仅仅是数字/undefined转换之后是NaN
其它的正常转换
在JavaScript中如果想将以上的四种基本数据类型转换为数值类型, 常用的方法有三种
1.通过Number(常量or变量);方式来转换
2.还可以通过数学运算中的+号和-号来转换
3.还可以通过parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
*/
/*
let str = "123";
console.log(str);
console.log(typeof str);
let num = Number(str);
console.log(num);
console.log(typeof num);
*/
/*
let num = Number("456");
console.log(num);
console.log(typeof num);
*/
/*
// 注意点: 如果字符串中没有数据, 那么转换的结果是0
// let str = "";
let str = " ";
let num = Number(str);
console.log(num);
console.log(typeof num);
*/
/*
// 注意点: 如果字符串中的数据不仅仅是数值, 那么转换的结果是NaN
// NaN === Not a Number
let str = "12px";
let num = Number(str);
console.log(num);
console.log(typeof num);
*/
/*
// 如果是布尔类型的true, 那么转换之后的结果是1
// let flag = true;
// 如果是布尔类型的false, 那么转换之后的结果是0
let flag = false;
let num = Number(flag);
console.log(num);
console.log(typeof num);
*/
/*
// 如果是空类型, 那么转换之后的结果是0
let value = null;
let num = Number(value);
console.log(num);
console.log(typeof num);
*/
/*
// 如果是未定义类型, 那么转换之后的结果是NaN
let value = undefined;
let num = Number(value);
console.log(num);
console.log(typeof num);
*/
/*------------------华丽的分割线------------------*/
/*
// 虽然通过+/-都可以将其它类型转换为数值类型, 但是-会改变数值的正负性
// +/-底层本质上就是调用了Number函数
let str = "123";
// let num = +str;
// let num = -str;
// let num = +"456";
// let num = +"";
// let num = +" ";
let num = +"12px";
console.log(num);
console.log(typeof num);
*/
/*
// let flag = true;
let flag = false;
let num = +flag;
console.log(num);
console.log(typeof num);
*/
/*
let value = null;
let num = +value;
console.log(num);
console.log(typeof num);
*/
/*
let value = undefined;
let num = +value;
console.log(num);
console.log(typeof num);
*/
/*------------------华丽的分割线------------------*/
/*
let str = "12px";
// let num = Number(str);
let num = +str;
console.log(num); // NaN
console.log(typeof num);
*/
/*
// let str = "12px";
let str = "3.14px";
// let num = parseInt(str);
let num = parseFloat(str);
console.log(num);
console.log(typeof num);
*/
/*
// 注意点: parseInt/parseFloat都会从左至右的提取数值, 一旦遇到非数值就会立即停止
// 停止的时候如何还没有提取到数值, 那么就返回NaN
let str = "a3.14px";
let num = parseFloat(str);
console.log(num);
console.log(typeof num);
*/
// 注意点: parseInt/parseFloat都会将传入的数据当做字符串来处理
let value = true;
// let num = Number(value);
// let num = +value;
let num = parseInt(value); // parseInt("true");
console.log(num);
console.log(typeof num);
1.将String类型转换为布尔类型
只要字符串中有内容都会转换为true, 只有字符串中没有内容才会转换为false
2.将Number类型转换为布尔类型
只有数值是0才会转换为false, 其它的都会转换为true
如果是NaN也会转换为false
3.将undefined类型转换为布尔类型
undefined会转换为false
4.将null类型转换为布尔类型
null会转换为false
空字符串/0/NaN/undefined/null 会转换成false, 其它的都是true
在JavaScript中如果想将基本数据类型转换为布尔类型, 那么只需要调用Boolean(常量or变量)
*/
/*
// let str = "abc"; // true
// let str = " "; // true
let str = ""; // false
let flag = Boolean(str);
console.log(flag);
console.log(typeof flag);
*/
/*
// let num = 999; // true
// let num = -123; // true
// let num = -0; // false
let num = 0; // false
let flag = Boolean(num);
console.log(flag);
console.log(typeof flag);
*/
/*
// 注意点: 在JavaScript中NaN属于Number类型
let num = NaN;
// console.log(typeof num);
let flag = Boolean(num);
console.log(flag);
console.log(typeof flag);
*/
// let value = undefined; // false
let value = null; // false
let flag = Boolean(value);
console.log(flag);
console.log(typeof flag);