[TOC]
## 1.强制转换
* string,boolean-->Number(value)
> 特点:只能识别纯数字的字符串
~~~
true-->1
false-->0
~~~
~~~
var a = "12";
var b = "true";
var c = true;
var d = false;
console.log(Number(a));
console.log(Number(b));//注意
console.log(Number(c));
console.log(Number(d));
~~~
输出答案如下:
![](https://box.kancloud.cn/69c70bfedfdfeb5e7476b6be40c795d4_70x113.png)
* string-->number
parseInt();
parseFloat();
Tip:第一位必须为数字
~~~
var test =document.getElementById("test");
var height=test.style.height;
console.log(parseInt(height));
test.onclick = function(){
this.style.height = parseInt(this.style.height)+1+"px";
}
var a="12px";
var b="a13px";
var c="13.45px";
console.log(parseInt(a));
console.log(parseInt(b));
console.log(parseInt(b));
console.log(parseFloat(c));
~~~
![](https://box.kancloud.cn/b2ea551f9540db7dcef13b57f8815e32_95x171.png)
## 2.自动转换
> 定义:不需要程序员干预,js自动完成的类型转换
算数计算中的自动转换:
### 2.1.算数计算中,数据都默认转为数字,再计算,不能转为数字则为NaN
~~~
Boolean类型:true-->1 false-->0
eg:
var a=1;
var b=true;
var c = "hello world";
console.log(a+b); //2
console.log(a-c); //NaN
~~~
### 2.2.特殊+运算中,碰到字符串,+就变为字符串拼接
另一个不是字符串的数据,被自动转为字符串
比较运算(>,<,>=,<=,==,!=)中的自动转换:
默认将所有类型转为数字再比较
将两个值做比较-->返回值:true、false
## 3.强制转换
### 3.1. 任意-->数字:3个API
a.特点:只能识别纯数字的字符串
~~~
Number(x)
eg:
var a ="20";
console.log(Number(a))
//只能识别这样的字符串
~~~
b. 将字符串转为数字:2个API
parseInt(str):
从第一个字符开始依次读取每个数字,只要碰上第一个非数字字符就停止,自动跳过开头的空字符
***不识别小数点
> Tip:何时使用:将字符串转为整数时
~~~
var width="20px";
console.log(Number(width)) //NaN
console.log(parseInt(width)) //20
~~~
parseFloat(str):用法同parseInt
> 比较Number()和parseInt()
~~~
var b=true;
console.log(Number(b)) //1
console.log(parseInt(String(b))) //NaN
~~~
### 3.2. 任意类型-->字符串:2个API
~~~
x.toString(); x不是undefined或null时,才可用
String(x)
~~~
### 3.3.任意类型-->Boolean: Boolean(x)
~~~
只有5个值转为false:
"" NaN undefined null 0
其余都转为true
~~~
- 1.JS的基础知识
- (1)调试
- (2)变量
- (3)数据类型
- 数据类型之间的转换
- (4)全局变量和局部变量
- (5)运算符和表达式
- (6)数组
- 2.控制语句DOM,BOM,事件
- (1)控制语句
- (2)DOM的基础
- 节点
- 改变样式
- DOM事件
- 3.函数
- (1)声明函数
- (2)构造函数
- (3)函数的参数
- (4)函数的传参
- (5)改变this
- (6)重载
- (7)回调函数
- 4.数组
- (1)创建数组
- (2)增删改查
- (3)字符串与数组的转换
- 5.正则
- (1)创建正则
- (2)字符串中支持正则
- (3)语法
- 最核心的元字符
- 6.ajax
- (1)原生ajax
- (2)http,get,post
- (3)跨域
- (4)jQuery-ajax
- (5)axios
- 7.面向对象
- (1)原型
- (2)原型链,继承
- (3)多态
- 8.es6小结
- 9.js+canvas实现验证码
- 10.js的作用域
- 11.闭包
- 实例
- toggle
- 图片切换
- swiper
- 遮罩颜色渐变
- 表格添加
- 瀑布流
- ajax数据请求渲染
- 百度地图