2.1写法、规范
语句结束;
加 ; 的好处
避免输入内容不完整
便于开发者通过删除空行来压缩代码
某些情况下提升性能
//可以不加;
for(){
}
if(){
}
switch(){
}
function(){
}
//单一var声明格式
var a = 1,
b;
空格
var c = a + b;
2.2错误
语法错误
一行都不执行
console.log(1);
console.log(2);//中文;
(句法错误)
通用错误
执行到错误那行
console.log(1);
console.log(a);
(引用误差)
语法错误,代码块之间无影响
<script type="text/javascript">
console.log(1);
</script>
<script type="text/javascript">
console.log(1);//中文;
</script>
通用错误,代码块之间无影响
<script type="text/javascript">
console.log(1);
</script>
<script type="text/javascript">
console.log(1);
console.log(a);
</script>
2.3运算符
+、-、*、/、%、()
//+
var a = 1,
b = 2,
c;
console.log(c);//3
//*
var a = 1,
b = 2,
d = 3;
var c = (a + b) * d;
console.log(c);
//1.声明变量
//2.变量a的值和变量b的值相加,与变量d的值相乘得到结果
//3.将该结果赋值给c
//括号运算>普通运算>赋值
+
数学运算符 字符串拼接
//数学运算符
var a = 1,
b = 2,
c;
c = a + b;
//字符串拼接
var a = 1,
b = 2,
c;
c = 'str' + 'str';//strstr,字符串+字符串=字符串拼接
c = 'str' + null;//strnull
c = 'str' + undefined;//strundefined
c = 'str' + NaN;//strNaN 任何数据值+字符串 = 字符串
C = 'str' + 1 + 1;//str11
c = 'str' + (1 + 1);//str2
c = 1 + 1 + 'str' + (1 + 1);//2str2
/
//除法
var a = 10,
b = 2,
c;
c = a / b;
console.log(c);//5
c = 0 / 0;//NaN(数字类型) =>Not a Number 非数
c = 'a' / 'b';//NaN
c = NaN / 1;//NaN
c = 1 / NaN;//NaN
C = 1 / 0;//Infinity Infinity、-Infinity(数字类型)
%
console.log(5 % 3);//2
console.log(4 % 6);//4
console.log(0 % 6);//0
交换值的问题
//方法一
var a = 1,
b = 2;
//a b 交换值
var c = a;
a = b;
b = c;
console.log(a,b);
//方法二
var a = 1,
b = 2;
//a b 交换值
a = a + b;
b = a - b;
a = a - b;
++ --
var a = 1;
console.log(a++);//1
console.log(a);//2
var a = 1;
console.log(++a);//2
题
var a = 5,
b;
b = a++ +1;//b = 6 , a = 6
var a = 5,
b;
b = ++a +1;//b = 7 , a = 6
var a = 5,
b;
b = a-- + --a;//b = 8 , a = 3
var a = 5,
b;
b = --a + --a;//b = 7 , a = 3
var a = 5,
b;
b = --a + a++;//b = 8 , a = 5
>、<、>=、<=、==、===、!=、!===
>、<、>=、<=
number - number
var bool = 1 > 2;
console.log(bool);//false
var bool = 1 < 2;
console.log(bool);//true
number - string
string ->number再计算
var bool = 1 > '2';
console.log(bool);//false
var bool = 1 < '2';
console.log(bool);//true
string - string
字符串相对应的ASCII码(字符相对应的十进制代码),多个字符的,从左往右依次对比,直到比较出ASCII码的大小为止
var bool = 'a' > 'b';
console.log(bool);//false
var bool = 'a' < 'b';
console.log(bool);//true
var bool = '4.5' > '11';//先比较4和1
console.log(bool);//true
var bool = '1.5' < '11';//先比较1和1,再比较.和1
console.log(bool);//true
==
相等不看类型
var bool = 1 == '1';
console.log(bool);//true
===
全等看类型是否相等
var bool = 1 === '1';
console.log(bool);//false
var bool = 1 != 2;
console.log(bool);//true
!==
var bool = 1 !== '1';
console.log(bool);//true
NaN与包括自己在内任何东西都不相等
var bool = NaN == NaN;
console.log(bool);//false
逻辑运算
与&& 或|| 非!
假 : undefined、null、NaN、""、0 、false
除上述以外都是真
&&
1 && 1 | 返回1 | 真 |
0 && 1 | 返回0 | 假 |
1 && 0 | 返回0 | 假 |
0 && 0 | 返回0 | 假 |
//&&遇到真就往后走,遇到假或者走到最后就返回当前的值
var a = 1 && 2;
console.log(a);//2
var a = 1 && 2 && undefined && 10;
console.log(a);//undefined
||
1 || 1 | 返回1 | 真 |
0 || 1 | 返回1 | 真 |
1 || 0 | 返回1 | 真 |
0 || 0 | 返回0 | 假 |
//||遇到假就往后走,遇到真或者走到最后就返回当前值
var b = 1 || 2;
console.log(b);//1
var b = 0 || null || 1 || 0 ;
console.log(b);//1
document.onclick = function(e){
var event = e || window.event;
}
!
var a = !1;
console.log(a);//false
var a = !!1;
console.log(a);//true
//取反
var a = !a;
2.4分支判断
在条件中&&就是并且,||就是或者
if
//IF
//条件:互斥性
//场景:范围
var score = 63;
if(score >= 90 && score <= 100){
console.log('您的成绩等级为A');
}else if(score >= 80 && score < 90){
console.log('您的成绩等级为B');
}else if(score >= 70 && score < 80){
console.log('您的成绩等级为C');
}else if(score >= 60 && score < 70){
console.log('您的成绩等级为D');
}else if(score<60){
console.log('您的成绩不合格');
}else{
console.log('您的成绩出现异常');
}
switch
//switch
//场景:定值
var city = window.prompt('请输入您所在的地区');
switch(city){
case '北京':
console.log('15k');
break;
case '上海':
console.log('13k');
break;
case '深圳':
console.log('12k');
break;
default:
console.log('8k');
}
2.5注释
块注释
/*
*
*/
行注释
//