您的位置:首页 > Web前端 > JQuery

近期学习javascript和jquery遇到一些问题的技巧知识总结

2016-07-03 13:01 816 查看
工作快两年多了,刚毕业的第一年,很有干劲,很努力的学东西,但是到了第二年,基本学的少了,看的少了,到了今年2016年,慢慢意识到这样子不行,所以时不时抽出点时间学习下,本人还是菜鸟一枚,但是通过这几个月抽出的一点点时间,我真的学到了很多,以前学js就忘记 ,现在 又学了一遍js ,感觉好多东西都通了一点,

1  定义变量未赋值出现undefined和 用typeof检测 未赋值变量出现undefined的区别

    typeof 返回的值字符串的undefined 如:

   var fg; 

   if(typeof fg =='undefined'){//注意 这里如果undefined 不加 引号 就会执行else  因为typeof 返回的是字符串undefined 

          alert('我会弹出来');  

   }else{

     alert('我不是弹出');

  }

 

 var fs;

alert(fs==undefined) //这里undefined不用加引号 现在弹出true 加了引号就是false

2 jquery 中的data()方法

 $('.logo').data('name','zhao'); //这里是给.logo 赋值一个name  值为zhao

console.log($('.logo').data('name'))*/  //这里是取.logo 的值  这样子有什么用呢

想象这样一个场景:

一个用户信息查看页面,带有一些很标准的功能,增删查改、分页什么的,点击用户名字弹出一个界面浏览用户的各种信息。

这时候就很适合使用data把用户信息绑定在用户名字上。不用的话,你就需要自己维护一个用户信息的数组,或者自己写一个前端小型mvc框架才行。

3私有变量的问题

 var person = {  

    _name: '',   

    getName: function() {  

        return this._name || 'not defined';  

    }  

};   

person.getName(); // "not defined"

下划线前缀用来作为私有变量的约定,但是其他开发人员仍然可以调用此私有变量:

person._name; 

那么,如何在JavaScript中创建一个真正的私有变量呢? 

主要技巧是使用匿名函数(anonymous function)和闭包(closure)

var person = {};    

(function() {  

    var _name = '';   

    person.getName = function() {   

        return _name || 'not defined';   

    }   <br>  

})();   <br>  

<br>  

person.getName(); // "not defined"   

typeof(person._name); // "undefined"  //外面的开发人员就访问不到了

4 .for循环:我们习惯的写法是—–for(var i=0;i<selector.length;i++){};

看似是没有问题,但是如果selector是读取的DOM的节点,那么每一次循环都要去DOM里选取节点再做判断,非常影响性能。数量不大还行,多了就非常严重!因此for循环判断条件里尽量不要使用涉及到DOM操作的动作。优化如下:for (var i = 0, max = selector.length; i < max; i++){};这个同理就是减少dom检索的请求;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息