• 初识JavaScript


    一、语法结构

    编程语言的语法结构是一套基础性规则,用来描述如何使用这门语言来编写程序。作为语法的基础,它规定了诸如变量名的命名规范,注释的规范,以及程序语句之间如何分隔等规则。下面是介绍JavaScript的基本语法结构。


    1、字符集
    JavaScript程序是用Unicode字符集编写的,所以它几乎支持世界上的所有语言。


    2.1.1区分大小写
    JavaScript是区分大小写的,关键字,变量名,函数名和所有标识符都必须采用一致的大小写形式,如关键字while和While、WHILE分别代表不同的意义。
    但需要注意的是,HTML并不区分大小写(尽管XHTML区分大小写,但由于浏览器的容错能力还是会正确解析渲染的)。由于他和客户端JavaScript联系紧密,因此这里很容易混淆。许多客户端JavaScript对象和属性与他们所表示的HTML标签和属性同名,在HTML中这些标签和属性名可以使用大写也可以是小写,而在JavaScript中必须是小写。例如在HTML中设置事件处理程序时,onclick属性可以写成onClick,但在JavaScript代码(或者XHTML文档)中,必须使用小写的onclick。

    2.1.2 空格、换行符和格式控制符
    JavaScript会忽略程序中标识(token)之间的空格,换行符。由于可以在代码中随意使用空格和换行,因此可以采用整齐,一致的缩进来形成统一的编码风格,从而提高代码的可读性。
    除了可以识别普通的空格符(u0020),JavaScript还可以识别如下这些表示空格的字符:
    水平制表符(u0009)

    垂直制表符(u000B)

    换页符(u000C)

    不中断空白(u00A0)

    字节序标记(ufeff)
    JavaScript将如下字符识别为行结束符:
    换行符(u000A)
    回车符(u000D)
    行分隔符(u2028)
    段分隔符(u2029)
    回车符加换行符在一起被解析为一个单行结束符。

    2.2注释
    JavaScript支持两种格式的注释。
    行注释:在“//”之后的文本都会被JavaScript当做注释忽略,
    多行注释:“/*”多行注释“*/,注意多行注释是不能嵌套的。


    2.3直接量
    所谓直接量就是程序中可以直接使用的数值,如下类型:
    整数:1,2,3...
    小数:1.2,2.34,...
    字符串:“Hello World”
    bool:true,false。
    正则表达式:/正则表达式规则/
    null:空


    2.4标识符的命名规则
    JavaScript中标识符必须以字母、下划线或$开始,后续的字符可以是字母,数字,下划线或美元符($)。需要注意的是和其它语言一样,标识符名是不能以数字开头的。

    2.5保留字

    我 们在命名变量名时不能与JavaScript的保留字重名。下面是一些常见关键字:

    abstract arguments boolean break byte
    case catch char class* const
    continue debugger default delete do
    double else enum* eval export*
    extends* false final finally float
    for function goto if implements
    import* in instanceof int interface
    let long native new null
    package private protected public return
    short static super* switch synchronized
    this throw throws transient true
    try typeof var void volatile
    while with yield  

    2.6可选的分号
    和其它许多编程语言一样,JavaScript使用分号(;)将语句分隔开,这对增强代码的可读性和整洁性是非常重要的,缺少分隔符,一条语句的结束就变成了下一条语句的开始。在JavaScript中如果语句独占一行,通常可以省略分号,但还是建议使用分号来明确标记语句的结束,这是一种编程风格,还有一种就是在任何可以省略分号的地方都将其省略,只有在不得不用的时候才使用分号,介于这种风格需要注意以下问题:

    // 1、两条语句独占一行,并且能被正确解析。所以可以省略分号
    a = 3
    b = 4
    
    // 2、两条语句在一行,必须用分号标明语句的结束位置
    a = 3; b = 4;  // b的分号可以省略
    
    // 3、下面要注意的就是JavaScript并不是将所有独占一行的语句都自动填补分号
    //    前提是独占一行的语句能够得到正确的解析,如下代码:
    var a
    a
    =
    3
    console.log(a)
    // 会被解析成如下代码
    var a;
    a = 3;
    console.log(a);
    
    // 4、下面是很容易造成混淆和难以理解的地方
    var y = x + f
    (a+b).toString()
    // 也许我们会认为JavaScript会解析成这样var y = x + f;(a+b).toString()
    /*
    实际JavaScript会解析成var y = x + f(a+b).toString()
    而上述代码的本意并不是这样,所以为了正确解析,需要写分号来明确语句的结束。
    通常来讲,如果一条语句以(、[、/、+、-开始,name它既有可能和前一条
    语句何在一起解析。以/、+、-开始的语句并不常见,而已(和[开始的语句
    则非常常见,有些程序员喜欢保守的在语句前加一个分号,这样哪怕之前的
    语句被修改了,分号被误删除了,当前语句还是会正确解析:
    */
    var y = x + f;
    ;(a+b).toString();
    
    // 5、return和continue需要注意的地方
    return
    true;
    /*
    本意是 return true;
    实际是return;true;
    在return和continue后面的表达式不能有换行。如果添加了换行,程序则只有在极特殊的情况才会报错,而且程序的调试非常不方便。
    */
    
    // 关于++和--需要注意的地方
    x
    ++
    y
    // 会被解析成x;++y;

     所以为了避免上述情况的发生,和代码的可读性最好还是在语句的结束位置添加分号。

    二 数据类型、值和变量
    JavaScript的数据类型分为两类
    原始类型(primitive type):数字、字符串、布尔值。
    对象类型(object type):object。


    JavaScript有两个特殊的原始值:null和undefined(未定义),它们不是数字,字符串和布尔值,它们通常分别代表了各自特属于类型的唯一成员。
    关于对象object是属性(property)的集合,每个属性都由“键:值”构成。
    普通的JavaScript对象是“键:值”的无序集合,JavaScript同样定义了一种特殊对象数组(array),表示带编号的值的有序集合。JavaScript为数组定义了专用的语法,使数组拥有一些和普通对象不同的特性。

    JavaScript还定义了另一种特殊对象函数,函数是具有与它向关联的可执行代码的对象,通过调用函数来运行可执行代码,并返回运算结果。
    如果函数用来初始化(使用new运算符)一个新建的对象,我们称之为构造函数(constructor)。除了数组array类和函数之外,JavaScript定义了三种有用的类,日期(data)定义了日期对象,正则(RegExp)类定义了正则表达式对象。错误(error)定义了JavaScript程序运行时错误和语法错误的对象。


    JavaScript解释器有自己的内存管理机制,可以自动对内存进行垃圾回收。这意味着程序员可以按需创建对象,不必担心这些对象的销毁和内存回收。当不再有任何引用指向一个对象,解释器就会知道这个对象没用了,然后自动回收它所占用的内存资源。

    JavaScript程序可以更改对象属性值和元组元素的值,数字、布尔值、null和undefined属于不可变类型。JavaScript可以自由的进行数据类型转换,如果在程序期望使用字符串的地方使用了数字,JavaScript会自动将数字转换成字符串,如果在期望使用布尔值的地方使用了非布尔值,JavaScript会进行相应的转换。


    JavaScript变量是无类型的,变量可以被赋予任何类型的值,同样一个变量可以重新赋予不同类型的值。使用var关键字来声明变量。JavaScript采用词法作用域(lexical scoping)。不在函数内声明声明的变量称为全局变量,它在JavaScript程序中的任何地方都是可见的,在函数内部声明的变量被称为局部变量,局部变量会随着函数的结束而销毁。

  • 相关阅读:
    Kubernetes日常维护命令
    4-docker的三要素
    3-docker的安装
    2-docker介绍
    1-为什么要使用docker
    块存储、文件存储、对象存储意义及差异
    ceph分布式存储的搭建
    YAML入门:以创建一个Kubernetes deployment为例
    Zabbix通过SQL语句从数据库获取数据说明
    图解HTTP--03--http报文内的信息
  • 原文地址:https://www.cnblogs.com/caesar-id/p/10560197.html
Copyright © 2020-2023  润新知