JavaScript基础进阶

JavaScript基础进阶

开篇需要理解的你可能不知道的JS系列... ...

本文主要总结归纳一些不太常见或者重要的知识点,理解它们能帮助我们更好地学习JavaScript。

  • web中涉及到三大交互的细节

    这三个交互是:行为交互、数据交互、逻辑交互

    行为交互:用户行为操作,如:点击按钮,缩放页面。

    数据交互:用于显示页面展示的数据信息,如:图片,文字等。

    逻辑交互:对用户行为和数据进行相关的处理,比如:点击按钮时JS代码要干什么?

  • JS的三种引入方式

    这三种引入方式分别为:行间、内部和外部

    行间:直接在div元素上做相关处理,如:onclick="alert('hello world')"

    内部:在<script>标签中直接编写JS代码。

    外部:通过<script>标签的src属性引入外部文件的代码。

    在通过外部引入JS文件时,需要额外注意的主要有两点:加载JS文件的性能问题和安全性问题

    1. 性能问题

      HTML是按顺序运行页面脚本,所以如果将script标签放在head里面,会阻塞页面的渲染(JS是单线程异步的逻辑处理,详见阮一峰的JS运行机制),所以常规的处理办法是将script放到DOM加载完成后,也就是body最后面,也可以通过defer或者async属性将scirpt代码延迟执行或加载(这里有一个问题就是script不一定在DOM的内容加载完成后执行)

    2. 安全问题

      通过JS的src属性可以进行跨域操作,因为src可以引入不同域名的代码,所以它超出了浏览器的同源策略限制,当外部JS代码不安全时,可能会对页面造成不可避免的安全性问题。

  • JS的注释方式

    只要有两种:单行注释多行注释

    // 这里是单行注释
    /*这里是多行注释*/
    let commtents = '注释';

    在项目中推荐使用多行注释

    /*  test方法   用于实现XXXXX
     *  params: a: 第一个参数,用于表示XXXX
     *           b: 第二个参数,用于表示
     *           ... ...
     *  return:  返回XXXX
    */
    function test(a, b, c){
        //...
    }
    ​
    // 你也可以写的更花哨一点
    /*------------------XXXXX模块1---------------------------
     * ....
     * ....
    */
    function a(){ //... };
    /*------------------XXXXX模块2---------------------------
     * ....
     * ....
    */
    function b(){ //... }

     

  • 项目中的JS命名规则

    1. 变量

      变量的命名规则:遵循ECMAScript规范来就行。

      常量的命名规则:建议全部大写,语义单词间用_分开;

      构造函数是特殊情况,建议用大驼峰方式命名

      let _dollar = '155美元';
      const INITED_VALUE = 100;
      var getName = function(){......};
      // 构造函数
      function Util(){};
      let util_1 = new Util();    
                          
    2. 文件、文件夹或者图片

      小写是最普遍的命名方式:index.css,nav_bar.js,icon_1.png;

      也有小驼峰命名的方式:navBar.js,

  • 三目运算符

    多级三目运算符能简化一些代码:

    let test = typeof mm === 'undefined' ? '1' : null == undefined ? '2' : '3'

    虽然它能简化通过if (), else()之类的逻辑判断,但是其语义不太明确,可读性较低,在实际项目中根据实际情况采用就行了。

  • 获取对象的属性

    两种方法:点操作符方括号操作符

    let obj = {
        a: 1,
        b: 2
    };
    obj.a         // 1
    obj['a']        // 1

    建议通过方括号操作符获取属性值,因为它可以传入变量,灵活性更好,而且利于后期代码维护或者新增一些功能。

  • 你可能记不全的console

    可能大多数前端开发人员用的最多的就是console.log()方法了,但是console还有一些其他实用的方法,对我们的代码调试非常有用的

    console.assert();          // 在不知道第一个参数是否存在,可以用它试试
    console.clear();           // 一不小心写了很多BUG? 控制台清空的功能
    console.time(); conole.timeEnd();     // 看一下方法运行了多久吧,太久了可不好哦!

    其它的详见MDN CONSOLE方法

    小扩展:重写console.log();返回你想要显示的信息

    var logs = console.log;
    console.log = function(text){
      logs.call(console,"结果为:"+text);
      }
    console.log("真的")

     

  • 字符串拼接

    在ES6模板字符串没出来之前,字符串拼接最常用的就是“+”了(可是换行咋个搞),它是非常有用的方法,至今还在被广泛使用。但是,千万别写成下面这样子哦!

    let last_Value = '1' + 2 + ' test value of '
                      + 5;                         // 它的结果没有换行!!

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值