JavaScript高级程序设计笔记(二)
Mar 6, 2017
操作符
++
和--
操作符age++
和++age
的区别在于age++
是先运算后+1,而++age
是先+1后运算,--
操作同理1
2
3
4
5
6
7
8var age = 18;
var nextAge = age++;
age; //19;
nextAge; //18
//上面的运算结果顺序其实是这样的:
var age = 18;
var nextAge = age;
age = age + 1;
var age = 18; var nextAge = ++age; age; //19 nextAge; //19 //这次的运算结果是这样的: var age = 18; age = age + 1; var nextAge = age;
1
<!-- more -->
+
和-
操作符+
和-
操作符放在数字前面,+
操作符对数字无影响,-
操作符是将数字变为负数+
和-
操作符放在非数字前面,则这两个操作符会像Number()
一样对这个值进行转换+
操作符用一个数字和一个字符串相加的时候,数字会先被转换为字符串,然后进行拼接操作- 例:
1
2
3
4
5
6
7
8var a = -true;
a; //-1
var b = +true
b; //1
var c = 1 + '1';
c; //"11"
var d = '1' + 1;
d; //"11"
=
、==
和===
=
表示赋值==
只比较左右两边的值,不比较数据类型===
全等,比较左右两边的值和数据类型- 例:
1
2
3
4
5var a = 5;
a; //5
5 == '5'; //true
5 === '5' //false
5 === 5; //true
语句
continue
和break
语句- 循环中
continue
会立即停止当前循环,从头开始执行循环 - 循环中
break
会立即退出当前循环,并执行循环后面的代码 - 例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17var num;
for(var i = 0;i<10;i++){
if(i==5){
break;
}
num = i;
}
alert(num); //4
----------------------
var num;
for(var i=0;i<10;i++){
if(i==5){
continue;
}
num =i;
}
alert(num); //9
- 循环中
switch
语句switch
语句中每个case后面都需要加一个break;
default
表示没有上述任何条件匹配是默认执行的动作,同if
的else
函数
argunments
对象定义
- 基本类型:简单的数据段,如Undefined,Null,Number,String,Boolean类型的值,栈内存存放这些对象的地址
- 引用类型:有可能由多个值构成的对象,如Object,Function,Array等类型的值,堆内存存放这些具体对象
- 例:
1
2var name = "Tit1e"; //基本类型
var obj = new Object(); //引用类型
复制变量值
- 将基本类型复制给一个另一个变量,这两个变量互相独立,原变量重新赋值都不会影响复制后的变量
- 将引用类型复制给一个另一个变量,改变饮用类型值的内容,复制的值也会相应的改变
- 例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//基本类型复制
var a = 123;
var b = a;
a = 456;
a; //456
b; //123
//引用类型复制
var c = new Object();
c.name = "Tit1e";
var d = c;
c.name; //"Tit1e"
d.name; //"Tit1e"
c.name = "Evol";
c.name; //"Evol"
d.name; //"Evol"
- 例:
函数传递参数是按值传递,也就是说传入函数的值只是一个副本,原值并不会有任何变化
- 例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17var b = 1;
function a(num){
return num += 1;
}
var c = a(b);
b; //1
c; //2
function a(obj){
obj.name = "Tit1e";
obj = new Object();
obj.name = "evol";
return obj;
}
var b = new Object();
var c = a(b);
b; //"evol"
c; //"Tit1e"
- 例:
检测类型
instanceof
用于检测类型- 例:
1
2
3var a = new Object();
a instanceof Object; //true
a instanceof Array; //false
- 例: