[TOC]
### 1.算术计算
> /* +,-,*,/,% */
* * * * *
将先两边的值转为Number再计算
特殊:+运算例外
~~~
var a="12";
var b = 3;
var c ="12px";
var d;
// console.log(Number(a)-b);
console.log(a-b);
// console.log(Number(c)-b) NaN和其他的值做运算,结果还是为NaN
console.log(c-b);
// console.log(Number(a)-Number(d));
console.log(a-d);
~~~
#### 1.1+特殊
> 算术计算中 `+`
作用:拼接符
只要一边的值为字符串,那么结果就是字符串
~~~
var a = "10";
var b= "50";
var c = 40;
console.log(a+b);
console.log(b+c);
~~~
### 2. 比较运算
~~~
>,<,<=,>=,==,!=,===
比较运算中,先将两边的值转换为number,再比较
结果返回boolean
===不仅值相同,类型也要相同
var a=true;
var b=1;
var c="12";
var d = false;
console.log(a===b);
console.log(c>b);
console.log(b<d);
~~~
#### 2.1特殊-->`==`
~~~
***(了解)
1.倘若有一边的值为boolean,那么先将boolean-->number再比较
2.倘若一边为字符串,一边为number,那么string-->number再比较
3.null==undefined
4.NaN不能任何值计算,结果都为NaN
NaN!=NaN //-->true
5.null和undefined比较之前不能将其转为其它类型
***
0,"",NaN,undefined,null
console.log(Number("")); //0
console.log(Number(null)); //0
console.log(0==""); //true
console.log(NaN!=NaN) //true
console.log(null===undefined); //false
console.log(null==0); //false
~~~
### 3. 逻辑运算
~~~
<style>
div{
width:100px;
height:100px;
background: red;
}
</style>
~~~
~~~
<div id="tes" class="test"></div>
<script>
var test = document.getElementById("test") || document.getElementsByClassName("test")[0];
console.log(test);
test.onclick = function(){
this.style.backgroundColor = "green"
}
</script>
~~~
~~~
&&,||,!
结果返回boolean值
&& 两边都为true,结果为true
|| 只要一遍为true,结果为true
!-->取反
var a = 10;
var b = 20;
var c = 30;
var d = 40;
console.log(a<b && c>d);
console.log(a<b && c<d);
console.log(a<b || c>d);
console.log(!(a>b))
~~~
### 4.赋值运算
* +=,-=,*=,/=,%=
> 前++,先自增,后运算
> 后++,先运算,后自增
~~~
var a =10;
var b = 20;
b+=++a;
console.log(a); //11
/* b=b+a */;
c=a++;
console.log(c); //11
console.log(a); //12
console.log(b); //31
a++;
console.log(a); //13
~~~
### 5. 三目运算
~~~
var a =(10<5)?"大于":"小于"; //判断为真,输出前面的,判断为假,输出后面的
console.log(a); //小于
~~~
### 6. 练习
~~~
console.log(""||"abc"); //"abc"
console.log(0 == ''); //true
function b(){
}
console.log(typeof b);//function
~~~
- 效果实例
- 1.点击增加高度
- 2.tab页面切换
- 3. 列表切换
- 4. 隔行变色
- 5. swiper 轮播
- 6.vue
- 7.定时器
- 8. 向表格中添加数据
- 9 瀑布流
- 1.JavaScript基础
- 1. 变量
- 2. 调试
- 3.数据类型
- 4.转换
- 5.控制语句
- 6.运算
- 7. this
- 8 JSON对象和javascript对象的相互转换
- 2.JavaScript的控制语句
- 1. 基本控制语句
- 2.节点
- 2.1DOM补充
- 3. 函数
- js的模块化如何解决
- 不知道有什么用的
- 4.数组
- 5. String
- 补充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封装
- Ajax效果
- ajax补充
- 7. 正则
- 1.创建正则表达式
- 2. 正则的api
- 3.正则语法
- 4.例子
- 量词
- 8.面向对象
- 1.原型
- ES6
- 模块化
- 1.回调地狱
- 什么是回调地狱
- 简单封装
- promise解决回调地狱
- generator解决回调地狱
- async解决回调地狱
- 2.封装
- Ajax,promise
- JavaScript难点
- 1. 闭包/作用域
- 2.原型链
- 3. 兼容性
- 适配
- JavaScript小效果
- 字符串截取