木子屋 Dnawo's BLOG

分类:脚本语言

共 349 篇

JS的递增/递减运算符和带操作的赋值运算符的等价式

1.递增/递减运算符等价式 a=b++; b++;a=?;(?为第一步运算结果,下同) a=++b; ++b;a=?; a=b--; b--;a=?; a=--b; --b;a=?; 所以,a=5;b=6;var3=a++*--b,结果为25 2.带操作的赋值运算符等价式 a*=b; a=a*b; a/=b; a=a/b; a+=b; a=a+b; a-=b; a=a-b; a%=b; a=a%b; a&=b; a=a&b; //从&=开始,下边都是逐位运算符 a|=b; a=a|b; a^=b; a=a^b; a>>=b; a=a>>b; a>b; //C#没有此运算符

JavaScript开发时的五个小提示

原文:Five quick JavaScript tips 只在元素上使用submit事件 如果要在form中绑定事件处理程序时,应该只在元素上绑定submit事件,而不是给提交按钮绑定click事件。 March:这个方式固然很好,但是,公司开发时使用了Web Flow,一个页面就一个大form,而里面可能有若干个提交按钮,所以不得不把部分事件处理程序绑定在了提交按钮的click事件上。 可点击的都应该是链接 不要给除锚元素()以外的元素绑定click事件。这一点对于键盘用户很重要,因为他们在仅通过键盘获取元素焦点时会遇到困难。 March:不过个人感觉锚元素还是应该只用作链接,而一些功能性的操作(比如Google Reader的Mark all as new),最好还是用来标注,accessibility的问题可以通过快捷键等方式解决。这样做可以更好的还原HTML元素的语义。…

JavaScript中将多个语句写成一个语句的两种方法

一、使用逗号运算符 1.一次声明多个变量 var i=1,j=1,k=1 2.多个语句用逗号间隔 i=1,j=i+2,k=j+2 二、使用花括号 if语句、while语句、do/while语句、for语句、for/in语句和function语句等语句后都只能跟随一个子语句,此时可以用{和}将多条语句围起来变成一个语句。 上边例子中"login = true;"并非if语句的子语句,要使它也成为if语句的子语句,就必须使用花括号:

while语句和do/while语句的两点不同

while语句: do/while语句: 从上边例子中我们来分析它们的两点不同: 1.因为while语句总是先检测循环表达式,所以它的循环体可能一次都不执行;而do/while语句是在循环底部检测循环表达式,所以它的循环体至少会被执行一次。 2.do/while语句的结尾要加个分号,这是因为它的结尾处是循环条件而不是简单的用花括号标识循环体的结束。

根据表达式的值返回指定值

有时我们要根据表达式的值返回指定的值,比如当表达式a>b的值为true时返回true,值为false时返回false。 1. JavaScript 使用运算符 (?:),例如:3>2?true:false 2. Visual Basic 使用IIF函数,例如:IIF(3>2,true,false) 3. VBScript VBScript中没有类似Visual Baisc的IIF函数,我们可以写一个自定义函数来实现:

Javascript学习笔记

一、做为数据类型的对象和函数 在Javascript中,对象和函数为复合数据类型,既是数据类型,就可以把它们赋值给变量,于是就出现了几个有意思的东西: 1.将一个对象赋值给另一个对象的属性。于是在客户端Javascript中就有了类似的调用:document.formname.inputname.value 2.将函数赋值给一个对象的属性,这就构成了对象的方法。 3.我们知道可以使用Function()构造函数和new运算符来定义函数,这说明函数实际上也是一种Javascript对象。由于函数是对象,那么它就也具有属性和方法,Function对象本身具有的属性有length和prototype,方法有apply()和call(),除此之外,我们还可以给Function对象创建自己的属性和方法。…

在外部JS文件中获取其自身的地址

昨天突然想到一个问题,假设某个htm页代码如下: 那么在Union5k3gCode.js中怎么获取其自身的地址(Union5k3gCode.js)呢?用document.location.href行不通,它的结果是htm页的地址;今天同事也在解决同样的问题,最后在他的提示下给标签加了个id属性,问题得以解决。 index.htm: Union5k3gCode.js: 既然能在外部JS文件中获取其自身的地址,那要实现在JS地址后传递参数也就非常容易了,只须对获取到的地址进行分析处理即可,详细方法可参考"静态页面也玩参数"一文。

JavaScript的保留字

下面列出了许多JavaScript的保留字,它们在JavaScript程序中是不能被用作标识符的(变量名、函数名以及循环标签)。表2-1列出了ECMAScript V3标准化的关键字。这些关键字对JavaScript来说具有特殊的意义,它们是这种语言的语法自身的一部分。 表2-1:保留的JavaScript的关键字 break do if switch typeof case else in this var catch false instanceof throw void continue finally new true while default for null try with delete function return…

输入法下keyup失效的解决方案

在某些情况下,比如自动补全(auto complete)的输入框中,需要使用keyup事件来监听键盘的输入以迅速作出回应。 关键在于keyup, 如果世界是美好的,那么就不会有这篇blog. 可是…… 世界是不美好的。我们活在中文世界,我们要用输入法。在输入法开启的情况下,您会碰到不美好的事情:keyup失效。对于您绑定到keyup的任何回调函数,除非您把输入法切换回英文状态,否则它会无动于衷。如果能称之为bug,我会很高兴,因为bug会有修复的可能,如果是特征(feature),那么,我只好叹息一下。 问题 在开启输入法的情况下,三个浏览器的具体问题如下: ●IE:触发keydown和keyup, 不触发keypress. 能够获得输入值。…

小试牛刀——一篇jQuery小教程

写个小教程,以期能让大家对jQuery有所了解,甚至喜欢上它(请不要怪我)。 不废话,先说明我们的目的。我们知道,当代浏览器(modern browsers)的文本框的聚焦(focus)样式可以通过CSS的伪类:focus来设置。假设我们有这么一段代码: 则我们这样的CSS就可以搞定focus样式: 简单不过,对不?你可以拿任何一款当代浏览器来测试(Firefox, Safari, IE7): http://realazy.org/lab/jquery/tut/form_hover_step1.html。IE6? 呵呵,这就是本篇教程的目的所在,没错,既然IE不支持:focus,我们只能Using DOM Scripting to Plug the Holes in CSS,不过我们用jQuery来实现。…