for (init counter; test counter; increment counter) { code to be executed; } 参数: init counter:初始化循环计数器的值 test counter:评估每个循环迭代。如果为TRUE,继续循环;如果为FALSE,循环结束。 increment counter:增加循环计数器的值
4. foreach循环
foreach循环只适用于数组,并用于遍历数组中的每个键/值对。每次循环都将指针后移一位。
语法格式:
1 2 3 4 5 6 7 8
第一种: foreach ($array as $value) { code to be executed; } 第二种: foreach ($array as $key => $value) { code to be executed; }
var img = new Image(); img.src = "图片路径"; img.onload = function (){ context.drawImage(img,0,0); var imgData = context.getImageData(0,0,canvas.width,canvas.height); var pixs = imgData.data; //因为一个参数是以四个参数组合的,所以i+=4 for(var i=0;i<pixs.length;i+=4){ var r = pixs[i]; var g = pixs[i+1]; var b = pixs[i+2]; var gray = parseInt((r+g+b)/3); //图像反色 pixs[i] = gray; pixs[i+1] = gray; pixs[i+2] = gray; } context.putImageData(imgData,img.width,img.height); }
var a = 1;
var b = a;
b = 5;
alert(a);
//a将值直接复制给b,修改b的值并不会影响a。
var arr1 = [1,2,3];
var arr2 = arr1;
arr2[0] = 10;
alert(arr1[0]);
//arr1将值的地址复制给arr2,修改arr2的值会影响到arr1的值。
因此,原型的继承应用以下方式:
function Person(name){
this.name = name;
}
Person.prototype.say = function(){
alert("person");
}
function Student(name,age){
Person.apply(this,arguments);
this.age = age;
}
//创建一个空的构造函数
function Lin(){};
//通过赋值实现传址,Lin的原型就跟Person的一样了
Lin.prototype = Person.prototype;
//通过实例化出来的对象的存储地址就是新的地址了,同时赋值给Student实现了传址,所以Student.prototype的地址就是
//实例化出来的对象的地址,则其的内容就跟被继承的原型的内容一致,实现了原型继承
Student.prototype = new Lin();
//再更改其constructor属性,达到跟创建原型完全一致
Student.prototype.constructor = Student;
var person = new Person("小明");
var student = new Student("小红","18");
student.say();
function Person(name){
this.name = name;
}
var person = new Person("小明");
var str = JSON.stingify(person);
var newObj = JSON.parse(str);
newObj.name = "小红";
console.log(person.name);
//判断手机号
var reg1=/^1[34578]\d{9}/;
//判断固定电话号码
var reg2=/(^0\d{2,3}-[1-9]\d{6,7}$)|(^[1-9]\d{6,7}$)/;
//判断汉字
var reg3=/[\u4e00-\u9fa5]+/g;
//选择替换关键字
var reg4=/哈哈|呵呵|这个是/g;
var str="这个是的呵呵,这个哈哈是的,呵呵";
var newStr=str.replace(reg4,function(sr){
var str="";
for(var i=0;i<sr.length;i++){
str+="*";
}
return str;
})
console.log(newStr);
//设置cookie的名字,值,过期时间
setCookie("usename/password",userVal,10);
function setCookie(key,value,days){
var newDate=new Date();
var nowDay=nowDate.getDate();
nowDate.setDate(nowDay+days);
document.cookie=key+"="+value+";expires"+nowDate.toUTCString();
}
//删除cookie,将date设置为过去的时间来删除
setCookie("name","",-1);
function mouseWheel(obj,fn){
var isDown=true;
var isFirefox=navigator.userAgent.search("Firefox")==-1?false:true;
if(isFirefox){
obj.addEventListener("DOMMouseScroll",wheel,false);
}else{
obj.onmousewheel=wheel;
}
function wheel(e){
var e=e||window.event;
if(isFirefox){
isDown=e.detail>0?true:false;
}else{
isDown=e.wheelDelta>0?false:true;
}
fn.call(obj,e,isDown);
}
}