编程之路:从零到腾讯,探索高质量代码的奥秘

前言

想要顺顺利利进入大厂,养成一些好的代码习惯和认真钻研这些大厂的高质量代码必不可少哦,所以我们应该养成哪些好的代码习惯呢?首先我们先探索一下腾讯高质量代码的奥秘,让我们一起来见证言谭和椰汁的爱情开始之路吧!

高质量代码介绍

  1. 创建言谭和椰汁两个对象
  2. 创建两个方法sendFlower和 receiveFlower实现言谭给椰汁送花
javascript 复制代码
const lpp={
            name:'言谭',//简单数据类型
            hometown:'上饶',
            age:18,//数值类型,
            girlfriend:null,//空
            city:undefined,//未定义
            isSingle:false,//布尔值类型
            hobbies:['睡觉','吃','打麻将'],//对象
            //形参
             sendFlower(receiver){
                receiver && receiver.receiveFlower(lpp);//提高代码健壮性 安全代码 防止用户传空值
            }
        } 
       
        const ltt={
            name:'椰汁',
            hometown:'上饶',
            mood:20,
            receiveFlower(sender){
                console.log(this.name+'收到了 '+sender.name+' 的花花~');
            }

        }

仔细观察,其实代码的思路存在一定问题,可以进一步改进,如果在椰汁心情不太好时,收到花花可能效果不太好,那么这个时候就需要一个小零二(接口)天使来帮助言谭将花传送给椰汁,等椰汁心情好再送花花,改进代码如下:

xml 复制代码
<script>
        /*
        *@func 代理送花
        *@desc 通过实现receiveFlower,互换对象
        *@author 椰汁
        *@data   24/4/15
        */
        //对象 object 复杂(引用)数据类型
        const lpp={
            name:'言谭',//简单数据类型
            hometown:'上饶',
            age:18,//数值类型,
            girlfriend:null,//空
            city:undefined,//未定义
            isSingle:false,//布尔值类型
            hobbies:['睡觉','吃','打麻将'],//对象
            //形参
             sendFlower(receiver){
                receiver && receiver.receiveFlower(lpp);//提高代码健壮性 安全代码 防止用户传空值
            }
        } 
       
        const ltt={
            name:'椰汁',
            hometown:'上饶',
            mood:20,
            receiveFlower(sender){
                console.log(this.name+'收到了 '+sender.name+' 的花花~');
                if(this.mood<80){
                    console.log(sender.name+'我们还是算了!');
                }
                else{
                    console.log(sender.name+'恰饭去~');
                }
            }

        }

        //对象字面量
        const xle={
           name:'小零二',
           hometown:'上饶',
           //实现了和ltt一样的接口,就可以互换
           receiveFlower(sender){
                 setTimeout(function(){
                 ltt.mood=99;
                 ltt.receiveFlower(sender);
            },2000);
            
        }
    }
        lpp.sendFlower(xle);
    </script>

总结

  1. 面向对象编程:JS是一门表现力极强的语言,{}即可声明一个对象,对象由属性和方法构成;
  2. 代码要够健壮:代码要被怎么调用不清楚,留个心眼,例如上述的receiver && receiver.receiveFlower();
  3. 抽象思想:lpp和ltt是一个个对象,当对象越来越多的时候,越来越复杂;
  4. 接口(interface):当多个对象具有相似的方法时,可以互换使用;
  5. 代理模式(proxy ):面向对象设计模式的一种,可以通过接口让对象之间互换使用,从而达到某些复杂目的;
  6. JS语法: (1)简单数据类型:字符串String,数值类型Number,布尔值Boolean,Null,Undefined; (2)复杂数据类型:其他的一切都是对象:Object, {}, [], function也是对象;
  7. 代码规范: (1)大厂都有代码规范,写代码前读一读; (2)驼峰式命名,结尾以' ; '结束,多写注释。
希望能给各位友友们带来一些帮助**~**
相关推荐
爱学习的茄子1 分钟前
深入理解JavaScript闭包:从入门到精通的实战指南
前端·javascript·面试
zhanshuo32 分钟前
不依赖框架,如何用 JS 实现一个完整的前端路由系统
前端·javascript·html
讨厌吃蛋黄酥34 分钟前
智能前端新纪元:语音交互技术与安全实践全解析
javascript
1234Wu1 小时前
React Native 接入 eCharts
javascript·react native·react.js
脑袋大大的8 小时前
JavaScript 性能优化实战:减少 DOM 操作引发的重排与重绘
开发语言·javascript·性能优化
速易达网络10 小时前
RuoYi、Vue CLI 和 uni-app 结合构建跨端全家桶方案
javascript·vue.js·低代码
耶啵奶膘10 小时前
uniapp+firstUI——上传视频组件fui-upload-video
前端·javascript·uni-app
JoJo_Way10 小时前
LeetCode三数之和-js题解
javascript·算法·leetcode
视频砖家10 小时前
移动端Html5播放器按钮变小的问题解决方法
前端·javascript·viewport功能