字符串长度截取function cutstr(str, len) { var temp, icount = 0, patrn = /[^\x00-\xff]/, strre = ""; for (var i = 0; i < str.length; i++) { if (icount < len - 1) { temp = str.substr(i, 1); if (patrn.exec(temp) == null) { icount = icount + 1 } else { icount = icount + 2 } strre += temp } else { break; } } return strre + "..." } 1 字符串长度截取function cutstr(str, len) { var temp, icount = 0, patrn...
一、事件处理函数概述 JavaScript 可以处理的事件类型为:鼠标事件、键盘事件、HTML 事件。 所有的事件处理函数都会都有两个部分组成,on + 事件名称,例如 click 事件的事件处理函数就是:onclick。 对于每一个事件,它都有自己的触发范围和方式,如果超出了触发范围和方式,事件处理将失效。 二、鼠标事件:页面所有元素都可触发 1、click:当用户单击鼠标按钮或按下回车键时触发。<script type="text/javascript">...
1、 操作符(1) 一元操作符前置递增和递减操作符,变量的值都是在语句被求值以前改变的;后置相反(2) 位操作符在ECMAScript中,对数值进行位操作时,会发生以下转换过程:64位的数值被转换为32位数值,然后执行位操作,最后再将32位的结果转换回64位数值;右移分为有符号右移(>>)和无符号右移(>>>)(3) 布尔操作符-(!)(&&)(||)(4) 全等操作符(===)只在两个操作数未经转换就相等的情况...
1 f=function(){returntrue;}; 2 g=function(){returnfalse;}; 3 (function(){ 4if(g()&&[]==![]){ 5 f=function f(){returnfalse}; 6function g(){returntrue;} 7 } 8})(); 9 alert(f());这是前端群遇到的一道题目,很精致小巧,主要是考察声明提前。if(g()&&[]==![])这里g()调用的是下面的function g(){return true}原文:http://www.cnblogs.com/nozero/p/4005755.html
1.函数的定义2.函数的递归调用3.闭包 1.函数的定义有两种: 第一种:函数声明 function functionName(arg0,arg1,arg2){//函数体 }函数声明,一个重要特征是函数声明提升,即在执行代码之前会先读取函数声明。 第二种:使用函数表达式 var functionName = function(arg0,arg1,arg2){//函数体 };函数表达式与其他表达式一样,在使用前必须先赋值。两种创建方式的区别:函数声明的方式创建函数会使函数声明提升。2....
javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this 一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最核心的一点——函数中的this总指向调用它的对象,接下来的故事都将围绕这一点展开 (提醒前排的筒子们准备好茶水和西瓜,我要开始讲故事啦!!) 【故事】有一个年轻人叫"迪斯"(this),有一天,迪斯不小心穿越到一个叫 “伽瓦斯克利”(javascript)的 异世界,...
在javascript中,break与continue有着显著的差别。 如果遇到break语句,会终止最内层循环,无论后面还有多少计算。 如果遇到continue,只会终止此次循环,后面的自循环依然执行。var num = 0;for (var k = 0; k < 3; k++) {for (var i = 0; i < 3; i++) {for (var j = 0; j < 3; j++) {if (i === 1 && j === 1) {break;}num++;}}}console.log(num); 此时 num=3*3-3*2=21 如果换成continue,则 num=3*3-3*1=24; 看...
JavaScript脚本语言中,大家对String对象使用replace()函数肯定不陌生,但是却没有如Java语言一般有replaceAll()方法,但是在使用中,又不可避免的会使用到,这种时候当然只有我们程序员自己来动手咯!!/*** Author Joyce.Luo 10:19:54 prepared in 2015.01.05* JavaScript language Methods: replaceAll(), based on the replace() method to realize* @param {} rgExp The need to replace the string or regular object* @para...
简单来说,回调函数:也就是将要执行的函数。(1)回调函数的定义function add(x,y,fn) {/** this.x this.y:属于add类的全局变量的定义* */this.x=x||1;this.y=y||1;if(fn){ /*判断是否有回调函数,有的话执行传入的函数(传入参数)*/fn(this.x+this.y);}}(2)回调函数的调用,一般为匿名函数,且有返回值 add(1,2,function (v) {//回调函数有返回值if(v>0){alert("result>0")}else{alert("result<0")}}) 总结:回调函数会...
一、自定义函数的基本语法fuction 函数名(参数名){ //语句。 return // 返回 }例子: //自定义函数。//输入两个数字,再输入一个运算符,得到一个结果。 /*var num1=prompt("请输入第一个数字"); var num2=prompt("请输入第二个数字"); var operatop=prompt("请输入一个运算符"); num1=parseFloat(num1); num2=parseFloat(num2); //自定义一个函数。 function jisuan(num1,num2,operator){ //特别...
我们说一个函数的调用模式是作为一个函数来调用,是要与其它三种调用模式做区分函数其他的三种调用: 方法调用模式,构造器调用模式,apply/call调用模式。方法的调用模式:var obj={fun1: function(){//方法内容this; //指的是window } }obj.fun1() //方法的调用构造器的调用:function Person(name, age, job){this.name = name;this.age = age;this.job = job;this.sayName = function(){alert(this.name);}; } var person1 = n...
3)嵌套函数例 3.3.1<head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/></head><script> function outerFun(){ var i = 0; function innerFun(){ document.write(i); } innerFun(); } outerFun(); /*here you can not call innerFun(), because it is inside another function outerFun, so it will cause error.*/ innerFun(); document...
一、函数表达式形式:var num = function (){ }; 其执行顺序是按正常解析顺序执行,只有在其后调用函数才会生效。二、函数声明形式:function num() { } 采用这种方式定义函数,有函数声明提升的作用,在函数之前调用函数也会执行。三、Function形式:var num = Function(“参数”,"参数","执行体";); 此方法创建的函数也是按顺序解析执行的。/*Function所用时间*/console.time(); for ( i = 1; i<100000; i++){var num =...
今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:‘中国‘ };还有一个对象,叫做"医生"。 var Doctor ={ career:‘医生‘ }请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象?这里要注意,这两个对象都是普通对象,不是构造函数,无法使用构造函数方法实现"继承"。二...
JavaScript的函数式编程的对象本质: function a() { var x="sth"; return b(){ //do with x; } } var c = a(); 等价于 function a() { this.x = "dosth"; this.b = function(){ //do with this.x } } var c = new a(); 但是 1)函数式编程本能地避免无用对象的构造 因为函数式编程鼓励当用到闭包的时候才去调用闭包构造,而面向对象通常事先构造好对象,准备在那里...