近期学习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检索的请求;
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检索的请求;
相关文章推荐
- 早该知道的7个JavaScript技巧
- 21个值得收藏的Javascript技巧
- JavaScript程序员应该知道的45个实用技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- 近期学习javascript和jquery遇到一些问题的技巧知识总结
- JavaScript技巧
- JavaScript技巧
- JavaScript技巧
- 近期学习javascript和jquery遇到一些问题的技巧知识总结