zoukankan      html  css  js  c++  java
  • JavaScript的基本语法

    原文地址:https://wangdoc.com/javascript/

    语句

    JavaScript程序的执行单位为行,也就是一行一行地执行。一般情况下,每一行就是一个语句。

    var a = 1 + 3;
    

    表达式不需要分号结尾。一旦在表达式后面添加分号,则JavaScript引擎就将表达式视为语句,这样会产生一些没有意义的语句。

    1 + 3;
    "abc";
    

    上面两行语句只是单纯的产生一个值,没有任何实际的意义。

    变量

    变量是对值得具名引用。
    注意:JavaScript的变量名区分大小写,所以A和a是不同的变量。
    如果只声明变量没有赋值,则该变量的值是undefinedundefined是一个特殊的值,表示无意义
    变量赋值的时候,忘了写var关键字,这条语句也是有效的。

    var a = 1;
    // 基本等同
    a = 1;
    

    但是不谢var的做法不利于表达意图,而且容易不知不觉的创建全局变量。
    JavaScript是一种动态类型语言,也就是说,变量的类型没有限制,变量可以随时更改类型。

    var a = 1;
    a = "hello";
    

    如果使用var重新声明一个已经存在的变量,是无效的。

    var x = 1;
    var x;
    x // 1
    

    上面代码中,变量x声明了两次,第二次声明是无效的。
    但是,如果第二次声明的时候还进行了赋值,则会覆盖掉前面的值。只要知道声明和赋值是分开的两步操作,就可以很容易理解了。

    var x = 1;
    var x = 2;
    x // 2
    // 等同于
    var x = 1;
    var x;
    x = 2;
    

    变量提升

    JavaScript引擎的工作方式是,先解析代码,获取所有的被声明的变量。然后再一行一行的运行。这造成的结果就是所有的变量声明语句,都被提升到代码的头部,这就叫做变量提升。

    console.log(a);
    var a = 1;
    

    因为变量提升,真正运行如下:

    var a;
    console.log(a);
    a = 1;
    // 结果显示 <font color=red>undefined</font>
    

    标识符

    按照要求命名,最好使用驼峰。

    注释

    单行注释://
    多行注释:/* 和 */
    兼容HTML注释方式:
    需要注意的是,-->只有在行首才被当成单行注释,否则当成正常的运算符。

    function countDown(n) {
        while(n --> 0)
            console.log(n);
    }
    countDown(3);
    // 2
    // 1
    // 0
    

    上面代码中,n --> 0实际上被当成n-- > 0,注意先判断在做--,再console.log(),所以输出2,1,0。

    区块

    JavaScript使用大括号,将多个相关语句组合在一起,称为区块(block)。
    对于var关键字来说,JavaScript的区块不构成单独的作用域(scope)。

    {
        var a = 1;
    }
    a // 1
    

    上面代码在区块内部,使用var关键字声明并赋值了变量a,然后再区块外部,变量a依然有效,区块对于var命令不构成单独的作用域。在JavaScript语言中,单独使用区块并不常见,区块往往用来构成其他更复杂的语法结构,比如for、if、while、function等。

    条件语句

    if语句需要注意不要混淆赋值表达式(=)、相等运算符()和严格相等运算符(=)。

    循环语句

    和Java类似

    break和continue

    和Java类似,且可以使用break + label的方式跳出某个label块。

  • 相关阅读:
    Linux curl命令添加参数
    postman无限循环执行接口用例
    xshell用root用户登录ubuntu
    centos5 yum源配置
    移动端布局方案
    vue + store2实现未提交信息自动保存
    sublime text里的terminal
    20180204
    2018.1.3 interview
    http协议
  • 原文地址:https://www.cnblogs.com/chris-jichen/p/9922794.html
Copyright © 2011-2022 走看看