首页 > 代码库 > 每日分享
每日分享
一、数组和函数
concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响。 var arr = ["a","b","c"]; var arr1 = arr.concat("d","e"); //arr1 = ["a","b","c","d","e"] join 以指定的字符作为分割符,将数组转换为字符串,当指定字符为逗号时,其作用和 toString() 相同。 var str1 = arr.join(","); //str1 = "a,b,c" pop 通俗的讲,就是弹出数组的最后一个元素。结合下面的 push 方法,使得将数组作为栈来使用成为可能。pop 方法返回数组最后一个元素的值,并将 length 属性减 1,即返回后立即丢失最后一个元素。 var item1 = arr.pop(); //item1 = "c" push 将参数添加到数组的结尾。 arr.push("d","e"); alert(arr); //arr = ["a","b","c","d","e"] reverse 将数组中的元素反转排列,这个操作是在原有数组上经行操作,同时也返回数组本身。 arr.reverse(); alert(arr); //arr = ["c"."b","a"] shift 移去数组的第一个元素,并返回这个元素的值。这个方法的性质和 pop 方法很类似,pop 方法是移去最后一个元素。 var item1 = arr.shift(); //item1 = "a" unshift 将参数列表插入到数组的开头。其性质和 push 方法类型,但 push 方法是将元素添加到数组的结尾。 arr.unshift("d","e"); alert(arr); //arr = ["d","e","a","b","c"] slice 返回数组对象的一个子集,索引从开始(包括开始位置元素),到结束(不包括结束位置元素), 原有数组不受影响。当 开始或者结束为负数时,则使用他们加上数组长度后的值。如果结束小于等 于开始,将返回空数组。 var item1 = arr.slice(1,2); //item1 = "b" var item2 = arr.slice(-2,-1); //item2 = "b" splice 从数组对象中移除指定长度的元素,并替换为新的元素(相当于执行替换操作)。如果没有指定新 的元素,则相当于执行删除操作。返回被删除元素组成的数组。 var arr1 = arr.splice(1,2,"d","e"); //arr1 = ["b","c"] alert(arr);//["a","d","e"] var arr2 = arr.splice(1,2); //arr2 = ["d","e"] alert(arr); //arr = ["a"]
二、二维码的插件是什么
1、首先在页面中加入jquery库文件和qrcode插件。 <script type="text/javascript" src="http://www.mamicode.com/jquery.js"></script> <script type="text/javascript" src="http://www.mamicode.com/jquery.qrcode.min.js"></script> 2、在页面中需要显示二维码的地方加入以下代码: <div id="code"></div> 3、调用qrcode插件。 qrcode支持canvas和table两种方式进行图片渲染,默认使用canvas方式,效率最高,当然要浏览器支持html5。 直接调用如下: $(‘#code‘).qrcode("http://www.helloweba.com"); //任意字符串 您也可以通过以下方式调用: $("#code").qrcode({ render: "table", //table方式 width: 200, //宽度 height:200, //高度 text: "www.helloweba.com" //任意内容 });
三、js禁止鼠标点击的方法
禁用键盘按键,是通过document.onkeydown事件; 禁用鼠标单击,是通过document.onmousedown事件; [javascript] view plain copy print? function EventOper(){ if(event.keyCode==8){ event.keyCode=0; event.returnValue=false; alert("不允许使用退格键"); } if(event.keyCode==13){ event.keyCode=0; event.returnValue=false; alert("不允许使用回车键"); } if(event.keyCode==116){ event.keyCode=0; event.returnValue=false; alert("不允许使用F5键"); } if(event.ctrlKey){ event.returnValue=false; alert("不允许使用CTRL键"); } if((event.altKey)&&(event.keyCode==78)){ event.returnValue=false; alert("不允许使用ALT+N键"); } if((event.shiftKey)&&(event.keyCode==78)){ event.returnValue=false; alert("不允许使用SHIFT+N键"); } } function rightKey(){ if(event.button==2){ event.returnValue=false; alert("禁用鼠标右键"); } } document.onkeydown=EventOper; document.onmousedown=rightKey;
四、数组里怎样插入和取出内容
首先定义一个数组 var arr=[2,4,5,3,5,3,0];//这里以整形数组为例 确定数组的长度arr.length; 利用循环语句遍历数组 var arr=[2,4,5,3,5,3,0]; var arrvalue;//用于存放取出的数组的值 for(var i=0;i<arr.length;i++){ arrvalue=arr[i];//数组的索引是从0开始的 console.log(arrvalue);//把取出的值打印在控制台上 }
五、递归
程序调用自身的编程技巧称为递归( recursion)递归,就是在运行的过程中调用自己。
递归算法是一种直接或者间接地调用自身的算法。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。
递归算法解决问题的特点:
(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。
六、函数封装、调用
常见封装
function Person (name,age,sex){ this.name = name; this.age = age; this.sex = sex; } Pserson.prototype = { constructor:Person, sayHello:function(){ console.log(‘hello‘); } }
调用
1:方法调用模式。 请注意this此时指向myobject。 /*方法调用模式*/ var myobject={ value:0, inc:function(){ alert(this.value) } } myobject.inc() 2:函数调用模式 请注意this此时指向window /*函数调用模式*/ var add=function(a,b){ alert(this)//this被绑顶到window return a+b; } var sum=add(3,4); alert(sum) 3:构造器调用模式 javascript语言精粹一书建议摒弃这中方式。因为有更好的方式。这里先不介绍。下次发表博文的时候贴出来。 会在这里加一个连接。 /*构造器调用模式 摒弃*/ var quo=function(string){ this.status=string; } quo.prototype.get_status=function(){ return this.status; } var qq=new quo("aaa"); alert(qq.get_status()); 4:apply调用模式 ==我们可以来看一个更有用的apply实例。看最下面的代码。 /*apply*/ //注意使用了上面的sum函数 //与myobject //这中调用方式的优点在于可以指向this指向的对象。 //apply的第一个参数就是this指针要指向的对象 var arr=[10,20]; var sum=add.apply(myobject,arr); alert(sum); 看这个apply真正应用。bind这是一个绑定时间的函数 var bind=function(object,type,fn){ if(object.attachEvent){//IE浏览器 object.attachEvent("on"+type,(function(){ return function(event){ window.event.cancelBubble=true;//停止时间冒泡 object.attachEvent=[fn.apply(object)];//----这里我要讲的是这里 //在IE里用attachEvent添加一个时间绑定以后。 //this的指向不是到object对象本身所以。我们绑定的function里的this.id是无法正常工作的。 //但是如果我们用fn.apply(object) //这里可以看出我们是把apply的第一个对象也就是this的指向变更给了object所以this.id就变成了 //object.id 可以正常工作了。 } })(object),false); }else if(object.addEventListener){//其他浏览器 object.addEventListener(type,function(event){ event.stopPropagation();//停止时间冒泡 fn.apply(this) }); } } bind(document.getElementById("aaa"),"click",function(){alert(this.id)});
七、内置函数
1.常规函数
javascript常规函数包括以下9个函数:
(1)alert函数:显示一个警告对话框,包括一个OK按钮。
(2)confirm函数:显示一个确认对话框,包括OK、Cancel按钮。
(3)escape函数:将字符转换成Unicode码。
(4)eval函数:计算表达式的结果。
(5)isNaN函数:测试是(true)否(false)不是一个数字。
(6)parseFloat函数:将字符串转换成符点数字形式。
(7)parseInt函数:将符串转换成整数数字形式(可指定几进制)。
(8)prompt函数:显示一个输入对话框,提示等待用户输入。例如:
<script language="javascript">
<!--
alert("输入错误");
prompt("请输入您的姓名","姓名");//(标题,预设值)
confirm("确定否!");
//-->
</script>
(9)unescape函数:解码由escape函数编码的字符。
八、形参、实参、作用域
形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。
实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
实参和形参的区别:
空白或占位符
1。函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
用来填充形参
2。实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
传值调用和引用调用
3。传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。
九、全局变量
全局变量是编程术语中的一种,源自于变量之分。
变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。一个局部变量在被其它对象引用时,会是一个空值。但全局变量却不会出现这种情况。
十、局部变量
十一、原型链
当从一个对象那里调取属性或方法时,如果该对象自身不存在这样的属性或方法,就会去自己关联的prototype对象那里寻找,如果prototype没有,就会去prototype关联的前辈prototype那里寻找,如果再没有则继续查找Prototype.Prototype引用的对象,依次类推,直到Prototype.….Prototype为undefined(Object的Prototype就是undefined)从而形成了所谓的“原型链”。
十二、对象是什么
js对象是属性的集合
方法(Function) 数组(Array)对象(Object)都是对象
对象都是由函数产生的,只是我们平时看到的这种写法
var obj = {"a":"aaa","b":"bbb"}
这种其实是一种语法糖,其实等价于 var obj = new Object();obj.a="aaa".obj.b="bbb";
每日分享