JavaScript技巧【总结给我自己看的-。-】

好久没有写blog了……几天前在github上面fork了百度的IFE项目,然后看了看他们高级班的任务发现自己菜如狗,什么WebGL啊什么大型项目开发啥的完全不会啊QAQ,于是就随手找了一个中级班的task3来做,结果没想到做到了现在……目前功能做得差不多了,但是函数复用啊优化啊啥的暂时都还没管,只是最基本的实现了功能而已……发现自己真是渣的不行,效率也低。╮(╯▽╰)╭没办法现在开始努力吧,也顺便总结一下自己这几天写代码的一些感受。
刚开始写HTML和css的时候感觉还是比较简单的,毕竟没有涉及什么太复杂的样式,大概花了一共两个小时把前端样式实现了。然后接下来是JS……仔细看了功能之后才发现自己想的太简单了,这项目完全就是要做一个网页端的文件管理系统嘛……于是我又掉过头去看JS的localStorage这些东西,也算是学到了不少。不过我现在真的很想要赞美一下MVC……妈蛋写那种一两百行的小玩意儿的时候感觉不到,今天这JS文件破了五百行就感觉翻来翻去的好烦……虽然也是按照面对对象的思路来写的,也在封装函数啥的,但是感觉就是找来找去看着各种颜色的代码头都大了。妈蛋所以说我一个几百行的破玩意儿干嘛要OOP啊(╯‵□′)╯︵┻━┻,我又不写继承也没有多个实例我干嘛要OOP啊!全局变量污染可我已经用匿名函数包裹了啊!所以说为了OOP而OOP的都是脑袋被门挤了吧!【←比如我】
算了总结一些工程中的小函数吧,比如这个,返回对象长度:

Object.prototype.length = function() {
    var i = 0;
    for (var val in this) {
        if (this.hasOwnProperty(val)) {
            i ++;
        }
    }
    return i;
}

再举个例,遍历DOM兄弟元素:

function siblings(elem) {
                var sibling = [], previous = elem, next = elem;
                while (previous.previousSibling != null) {
                    previous = previous.previousSibling;
                    if (previous.nodeType == 1)
                        sibling.push(previous);
                }
                while (next.nextSibling != null) {
                    next = next.nextSibling;
                    if (next.nodeType == 1)
                        sibling.push(next);
                }
                return sibling;
            }

不出意外的话是可以用的orz。
还有removeClass:

function removeClass(elem, cla) {
                if (!elem.length) {
                    var c = elem.className;
                    c = c.split(" ");
                    for (var i = 0; i < c.length; i ++) {
                        if (c[i] == cla) {
                            c.splice(i, 1);
                        };
                    };
                    elem.className = c.join(" ");
                }
                else {
                    for (var i = 0; i < elem.length; i ++) {
                        var c = elem[i].className;
                        c = c.split(" ");
                        for (var j = 0; j < c.length; j ++) {
                            if (c[j] == cla) {
                                c.splice(j, 1);
                            };
                        };
                        elem[i].className = c.join(" ");
                    }
                }
            }

这个函数……感觉也是渣出了水平渣出了风格啊o(╯□╰)o。
对了,还有addClass,不过就是上面这个函数变一下罢了……就不丢脸了……
还有这些东西只是给我自己看的……求菊苣不要嘲笑我啊TAT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值