JavaScript
一. 函数的调用.
1.普通调用: 少传参数那么就会将缺少的参数默认为undefined.
var add = function(a,b){
return a+b;
}
console.log(add(1,2)); //3
console.log(add(1,"2")); //12
console.log(add(1)); //Nan
console.log(add(null,1)) //1
console.log(add("12")) //12undefined
2.方法调用模式: 将函数作为一个对象的属性,就叫做方法.
var myObj ={
value :0,
setValue:function(number1){
this.value = typeof(number1)=='number'?number1:1;
}
};
myObj.setValue(3)
console.log(myObj.value); //3
myObj.setValue("3")
console.log(myObj.value); //1
3.构造器调用模式: 在C#中我们声明一个对象一般都是通过new关键字来实现,其实JavaScript也可以.
var Quo = function(){
this.val1;
}
var myQuo = new Quo();
console.log(myQuo.val1);
myQuo.val1=1; //1
console.log(myQuo.val1);
var myQuo1 = new Quo();
console.log(myQuo1.val1); // undefined
4.默认参数,每一个函数里面默认会有一个arguments参数用来存储,所有的参数的. arguments是一个对象,存储了数据,不具备其他方法.
var sum = function(){
var sum=0;
for(var i=0; i<arguments.length;i+=1){ //默认会有一个arguments包含所有参数
sum+= arguments[i];
}
return sum;
}
console.log(sum(1,2,3)); // 6
二. 异常处理
1.异常处理返回的对象信息由自己随意构建.返回任意对象均可. throw抛出了一个包含name和message属性的对象.
var add = function(a,b){
if(typeof(a)!='number' || typeof(b)!='number'){
throw{
name:'type Error',
message:'All the parma must be number type'
}
}
}
var add_test = function(){
try{
add("frank",1);
}catch(ex){
console.log(ex.message); // All the parma must be number type
}
}
三.扩展方法.
1.和C#一样,JavaScript也提供了扩展方法,对于一些会经常用到的一些方法,可以通过提供扩展方法,方便对数据处理.
Array.prototype.GetOddNumber = function(){
var result = [];
for(var index=0;index<this.length;index++){
if(this[index]%2!=0){
result.push(this[index]);
}
}
return result;
}
var array = [1,2,3,4,5,6];
array = array.GetOddNumber();
console.log(array); // [1, 3, 5, GetOddNumber: function]
四.闭包
对于闭包我也不清楚该怎么定义表示直接上代码吧.
1.作用域. 变量分为全局变量和局部变量两种, 外面无法访问局部变量.
var global_val1 = 3;
var add = function(){
private_val2=4;
var private_val3 =5;
}
2.闭包的应用: 全局变量的坏处在于很多地方都可以修改。下面有这样一个场景, 我要记录一个button的点击次数,比方id分别为btn1
A.全局变量的实现方法.
var count1 = 0;
$(document).ready(function(){
$("#btn1").click(function(){
count1 +=1;
alert(count1);
});
});
B.使用闭包方法解决:
$(document).ready(function(){
$("#btn1").click(function(){
alert(showCount());
});
});
var showCount = (function () {
var counter = 0;
return function () {return counter += 1;}
})();