美文网首页
一个仅了解python的人眼中的javascript是怎样的

一个仅了解python的人眼中的javascript是怎样的

作者: 何赛艾慕 | 来源:发表于2019-05-16 22:39 被阅读0次

    大致摸清了前端三根支柱的基本架构之后,终于扔下了两门声明式语言开始认真的学习一下js,从一个只学过c,java,c#语法和稍微熟悉python的编程小白眼中看,js还是稍微有些不一样的。

    一. var/let/const

    说不同之前,还是简单说一点相同的。都是动态语言的话,自然也不需要声明类型了,然而javascript中所有的变量常量前都需要加一个“var”声明,嗯还是感觉有些奇怪的。

    var a='a';
    var a;
    

    同时,js中是允许不为变量赋予初值的,当然这个特性很多语言也有。
    随着ES6推出,javascript又出了新的关键字“let”和“const”,同时还有了些许规定,比如“let”只是用来声明变量的,“const”的限制就要多很多,比如:

    1. const一旦声明是不可以修改的,也就是const是用来声明常量的,当然,当const用来声明复合结构的变量时其内部元素是允许修改的。

    2. const一旦声明必须赋值如下是不允许的

      const a;
      

    const与其他两个是很好区分的,但是"let"和“var”就有些让人疑惑了,先看一些典型的用法区分:

    1. let对同一变量是不能重复声明的,而var可以:

       let a = 12;
       let a = 14;
      

    上述代码是错误的,但是把“let”换成“var”则是可以的。

    1. 由于ES6新增了块作用域这一概念,而早就存在的var是跨块作用域工作的,如:

          {
       var a = 1;
       let b = 2;
       const c = 3;
      
       console.log(a); // 1
       console.log(b); // 2
       console.log(c); // 3
       }
      
       console.log(a); // 1
       // console.log(b); // 报错
       // console.log(c); // 报错
      
    2. 变量提升,放例子:

       console.log(a);
       let a = 10;//报错
      
       console.log(b);
       var b = 10;//正确
      

    二. null/undefined

    在js中有两种特殊的类型,null和undefined,两者都是表示不存在,区分这两个类型的话有一句很不错的总结:“null是给开发者使用的,而undefined是留给javascript自己用的”,因此开发人员应该少使用undefined。如:

    let tmp;//代表该变量隐含值是“undefined”
    const tmp_nu = null;//代表我们为tmp_nu设置初值为null
    tmp = 1;//tmp此时有值了
    tmp = undefined;//这样的方式是不推荐的
    tmp_nu = 1;//这样的方式是可以接受的
    

    三 对象

    没想到呀,js对象居然是由键值组成的,这里不多说了,可能我还学的太少吧,还有一些方法,诸如delete ##(某个对象中的属性),感觉和sql这种声明式语言很像。
    同时JS对象是可以带拖尾逗号的,这再JSON中是会报错的,JS对象和JSON看来还是有些许的不同的。

    当然不仅仅是前面提到的这三点,只是介绍的这几点我感觉稍微不容易理解,在此写下一些自己查阅资料后的总结。

    相关文章

      网友评论

          本文标题:一个仅了解python的人眼中的javascript是怎样的

          本文链接:https://www.haomeiwen.com/subject/fpowaqtx.html