Javascript 细节散记

1. 不要在闭合的花括号之前多加一个逗号

 
 
  1. var sofish = {  
  2.     name:'小鱼',  
  3.     pos:'web developer',  
  4.     age:'24' // 你懂的,ie会有问题,小心加个逗号 
  5. }  

 

2. 如果判断只有3个元素,可以使用这样的定法:

 
 
  1. // 习惯这样写 
  2. var sofish; 
  3. if(age > 23){ 
  4.     alert('yes'
  5. else { 
  6.     alert('no'

现在我们可以这样写:

 
 
  1. var sofish = age > 23 ? alert("yes") : alert("no")

3. 注册函数给event时不要添加“()”

 
 
  1. function doSomething(){ 
  2.      var name = sofish, age = 24; 
  3.      function getName(){...}; 
  4.      function getAge(){...}; 
  5.      return
  6.          name:getName, // Note 
  7.          age:getAge // Note 
  8.      } 
  9. element.onclick = doSomething; // but not doSomething() 

4.注册onclick时注意重载

onclick 事件只能注册一个function,像下面这样的代码,第一个将会被第二个重载:

 
 
  1. // 不要这样写 
  2. element.onclick = startDragDrop; 
  3. element.onclick = spyOnUser; 

变通地,可以写成这样:

 
 
  1. element.onclick = function () {startDragDrop(); spyOnUser()} 

但是,这样的话,两个函数又可能已经有一个注册,这又会报错,因为,我们可以先来个判定:

 
 
  1. var old = (element.onclick) ? element.onclick : function () {}; 
  2. element.onclick = function () { 
  3.     old();  
  4.     spyOnUser() 
  5. }; 

好了,未注册的仍然会注册到,而已经注册则直接执行old();不过,这样,如果需要用到this的话,指向就有点混乱了,Ethan同学在留言中的建议是:

 
 
  1. var old = (element.onclick) ? element.onclick : function () {};  
  2. element.onclick = function () {  
  3.     old.call(this);   
  4.     spyOnUser.call(this)  
  5. };  

Notice:会在慢慢学的过程中,慢慢记下来。-,-… 学习学习学习…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值