02_JavaScript基础
1. 类型的强制转换
<script type="text/javascript">
/*
* 强制类型转换:
* - 将一个数据类型强制转换为其他数据类型
* - 类型转换主要指将其他的数据类型,转换为 String Number Boolean
* 转换为Null 和 Undefined没有意义
*/
/*
* 将其他的数据类型转换为 String
* 方式一:
* - 调用被转换数据类型的toString()方法
* - 该方法不会影响到原变量,它会将转换的结果返回
* - 但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错
* 方式二:
* - 调用String()函数,并将被转换的数据作为参数传递给函数
* - 使用String()函数做强制类型转换时,
* 对于Number和Boolean实际上就是调用的toString()方法
* 但是对于null和undefined,就不会调用toString()方法
* - 它会将 null 直接转换为 "null"
* - 将 undefined 直接转换为 "undefined"
*/
var a = 123;
console.log(typeof a);//number
a = a.toString();
console.log(a);
console.log(typeof a);//String
a = true;
console.log(typeof a);//boolean
a = a.toString();
console.log(a);
console.log(typeof a);//String
a = 123;
a = String(a);
console.log(typeof a);
console.log(a);
a = null;
a = String(a);
console.log(typeof a);
console.log(a);
a = undefined;
a = String(a);
console.log(typeof a);
console.log(a);
</script>
2. 其他数据类型转换为Number
<script type="text/javascript">
/**
* 将其他数据类型转换为Number
* 方式一:
* 使用Number()函数
* - 字符串转数值
* 1、如果字符串为纯数值,则直接转换为数字
* 2、如果字符串中有非数字的内容,则转换为NaN
* 3、 如果字符串是一个空串或全为空格,则转换为 0
* - 布尔值转数值
* 1、true --> 1
* 2、false --> 0
* - Null转数值
* null --> 0
* - Undefined转数值
* undefined --> NaN
* 方式二:
* 专门解决字符串问题
* parseInt(): 把字符串转换为整数
* parseFloat(): 把字符串转换为浮点数
*
* 对于非String使用以上两种方法,它会将其转换为String,然后再操作
*/
//字符串转数值
var a = "123"; //"-123"
a = Number(a);
console.log(typeof a); //number
console.log(a); //123 或 -123
//布尔值转数值
a = true;
a = Number(a);
console.log(typeof a); //number
console.log(a); //1
//Null转数值
a = null;
a = Number(a);
console.log(typeof a); //number
console.log(a); //0
//Undefined转数值
a = undefined;
a = Number(a);
console.log(typeof a); //number
console.log(a); //NaN
a = "123px";
/*
parseInt(): 获取字符串中从第一位开始的有效整数,转换为Number
*/
a = parseInt(a);
console.log(typeof a);//number
console.log(a); //123
a = "123.5";
/*
parseFloat(): 获取字符串中从第一位开始的有效小数,转换为Number
*/
a = parseFloat(a);
console.log(typeof a);//number
console.log(a); //123.5
</script>
3. 转换为其他进制数
<script type="text/javascript">
var a = 123;
/**
* 在js中,如果需要表示16进制的数字,则需要以0x开头
* 8进制的数字,需要以0开头
* 2进制的数字以0b开头,但不是所有浏览器都会识别
*/
//16进制
a = 0x10;
a = 0xff; //255
console.log(a); //16
//八进制
a = 070;
console.log(a); //56
//二进制
a = 0b10;
console.log(a); //2
</script>
4. 转换为Boolean
<script type="text/javascript">
/**
* 其他数据类型转换为Boolean
* 数字转Boolean,除了 0 和NaN,其余均为false
* 字符串转Boolean,除了空串,其余均为true
* null和undefined --> false
*
*/
var a = 123; //true
a = 0; //false
a = -123; //true
a = Infinity; //true
a = NaN;//false
a = "hello";//true
a = Boolean(a);
console.log(typeof a);
console.log(a);
</script>