当前位置 博文首页 > 文章内容

    js基础教程,JS基本入门教程。JS实用教程

    作者:dlxiaoyu01 栏目:其他 时间:2021-03-26 17:08:05

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



        每一门语言都有一些奇技淫巧,JS也不例外,一直想总结js基础教程这篇文章,我包括一些新手,都会有这么一个疑问,每次面对一张空白的页面,不知从何下手,没有思路,高手有的是设计模式,但是在这里讲一些设计模式,我可能不够格,这些书籍都有可以自己去翻阅,我能给的就是,总结我写代码的时候,会优化的一些技巧。
        js基础教程
        实用篇


        1.立即执行
        我为什么把立即执行放在第一个,因为一般做业务的时候都会有一个入口函数,比如一下这种格式
        function init(){
        //...
        }
        init()
        我一开始也跟上面这样写,但是后来看了《你所不知道的javaScript》,我是这么写的
        (function init(){
        //...
        })()
        立即执行的好处:
        作用域隔离,因为init这个函数名是没有必要在全局作用域中展示的


        2.常量解耦
        这个技巧我在业务中也是经常使用的,没学会之前是这么写的
        function(){
        console.log(12345678901)
        }
        但是学会之后,是这样的
        const TEL = 12345678901
        function(){
        console.log(TEL)
        }
        可能这里有人会问,你这不是多此一举,而且还添加了一个全局常量,但是事实是这样的,好处如下:
        当多处引用这个常量的时候,当你修改的时候,只要修改一处代码即可
        这样写出来的代码更具语义话,举个例子,有些请求回调中ERROR常量一般为1,摆在那别人很难看懂


        3.递归的解耦
        这个方法在红宝书中有写到,我不知道常不常用,如有错误,请纠正我,因为我递归一直在用,面试写算法题也在用,没学会之前的写法
        function a(){
        //...
        a();
        }
        学会之后,我的递归一般是这么写的
        function a(){
        //...
        argument.callee();
        }
        解耦的好处:
        修改函数名即可,不影响里面的代码


        4.整数的转换之加法篇
        你可能以前看到过parseInt和parseFloat这两个方法来转换成number类型的整数型和浮点型,其实,一开始我也是用这么笨的方法的,为什么说笨呢,举个例子
        let str = '123'
        console.log(typeof parseInt(str));    //number
        接下来是加号操作符
        let str = '123'
        console.log(typeof +str);    //number
        好处就不多说了吧,你打字打得累死,不如加号来的快,而且加号实现方式还优雅


        5.短路操作
        没学会这个方法之前我的代码是这样的:
        if(!foo){
        foo = bar
        }
        但是我学会短路操作之后的是这样的:
        foo = foo || bar
        好处:
        代码量减少
        书写优雅
        缺点:
        代码可读性降低
        短路原理:
        在js中&&和||这两个操作符有一个特性,比如&&前后有两个表达式,前者为false,后者不会执行,||会反过来


        6.条件表达式
        条件表达式或许在每门语言中都会用到,你没学会之前你会这么写
        if(a === true){
        b = c;
        }else{
        b = d;
        }
        但是你学会之后,你会这么写
        let b = a ? c : d
        好处:
        1.减少代码量
        2.代码优雅
        缺点:
        代码可读性降低


        7.调试之alert
        我没有实习之前不喜欢用alert的,现在也不怎么用,都是console.log,这样就可以在浏览器的控制台中看到页面数据的输出,但是h5不一样,h5有时候pc端没什么问题,但是手机端就是各种bug,想调试一个数据很麻烦,但是我们有个宝贝,alert这个东西在手机端调试比console.log棒的地方就是我们能看见我们的数据,他会以一个弹框的形式显示给我们


        8.优雅的向下取整
        向下取整有很多种方式,做常用的,是调用Math的方法,如下图的例子
        let num = 1.23
        let num1 = Math.floor(num);
        console.log(num1); //1
        但是下面有一种更加优雅的方式
        let num = 1.23
        let num1 = num | 0;
        console.log(num1)  // 1
        这种方式更加简洁,这种方式的原理是来源于js的位运算,这边的 | 不是逻辑或,是按或运算
        注意点:
        Math.floor(NaN)返回的是NaN,但是或零返回的是0;
        Math.floor(Infinity)返回的是Infinity,但是或零返回的是0;


        9.单声明的形式
        在编程中,最好养成一个习惯,一个函数的参数,声明在函数的顶部,然后用这个声明操作符来完成,例如:
        let a = 0,
        b = 0,
        c = 0,
        d = 0;
        这样的好处有:
        变量名不散乱,比较容易寻找
        少代码量
        防止你声明变量的时候出错


        10.绑定this
        这个怎么解释呢?其实es6箭头函数已经解决了,我也当一个技巧跟大家絮叨絮叨,我们在设计整个js代码怎么书写的时候,常常会把一块功能相同的代码放到一块,看看下面的例子,你就懂了
        function bindEvent(){
        let _this = this;
        function a () {
        //可以在a中使用_this;
        }
        function b () {
        //可以在b中使用_this;
        }
        }