美文网首页
JavaScript高级程序设计读书笔记(三)之JS基本概念

JavaScript高级程序设计读书笔记(三)之JS基本概念

作者: 惶惶不安的青年 | 来源:发表于2017-08-24 17:44 被阅读0次

    一、语法

    1、js是区分大小写的testTest是不一样的(重要)。
    2、标识符是指变量、函数名、参数名、属性名,命名规则是第一个字符必须是字母以及_$开头,其他字符可以是字母_$数字
    3、语言中的注释是:

    //单行注释
    /*
    这是块级注释
    */
    

    4、语言标准和严格模式,严格模式开启:

    function test(){
        'use strict'
        //严格模式开启会处理ECMAscript中不确定的行为,而且对某些不安全的操作抛出错位。
    }
    

    5、语句结束要加;,当然不加也是可以的,但是在代码压缩的解析上会带来不必要的错误(强烈推荐加上)

    二、关键字和保留字

    关键字:按照规则,关键字也是语言保留的,不能用作标识符。
    break do instanceof this function
    typeof case else while try
    new var catch in delete
    finally return void throw if
    continue for switch default with
    debugger*

    保留字

    abstract enum int short static
    boolean export interface import public
    byte extends long super double
    char final native synchronized implements
    class float package throws volatile
    const goto private transient protected
    debugger
    第5 版把在非严格模式下运行时的保留字缩减为下列这些:
    class enum extends super const
    export import
    在严格模式下,第5 版还对以下保留字施加了限制:
    implements package public interface private
    static let protected yield

    注意, let 和yield 是第5 版新增的保留字;其他保留字都是第3 版定义的。为了最大程度地保证兼容性,建议大家将第3 版定义的保留字外加let 和yield 作为编程时的参考。

    在ECMAScript3版本代码中使用关键字作标识符,会导致"Identifier Expected" 错误。而使用保留字作标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎。一般来说,最好都不要使用关键字和保留字作为标识符和属性名,以便与将来的ECMAScript 版本兼容。

    三、变量

    var messages;//声明变量var是关键字,messages是标识符。
    var messages='hi!';//变量messages保存的变量值`hi!`
    messages=520;//没问题,但是不推荐使用。
    function test(){
          var messages01=1000;//函数里面命名的是局部变量。
          messages02=2000;//相当于全局变量,因为没有用vae关键字。(但是不要这样,严格模式会报错)
    };
    test();
    alert(messages01);//错误,访问不到局部变量。
    alert(messages);//2000没问题
    var a,b,c,d;//可以一次声明多个变量以逗号分割分号结尾。
    在严格模式下,不能定义eval和arguments的变量,就是标识符会导致语法错误。
    

    四、数据类型

    1. typeof:用于检测数据类型
    2. Undefined:只有一个值undefined,声明一个变量但没有赋值就会自动取值为undefined。
    3. Null:只有一个值null,null表示空对象指针,用typeof检测时返回'object'.null==nudefined //true.
    4. Boolean:有两个值true和false,Boolean(message)可以转化任意值。
    5. Number:是数字类型,'e7'10的7次方,'e-7'负10的7次方。0.1+0.2!=0.3而是0.30000000000000004,
    js最小值Number.MIN_VALUE==5e-324,最大值Numer.NAX_VALUE==1.7976931348623157e+308。
    NaN非数值是特殊数值,本来要返回数值的时候未返回数值的情况,NaN自身都不等于自身。
    Number()转换任意值,parseInt()转化成整数第二个参数可以是几进制, parseFlont()也是转换成数值只是带有小数如果有多个点只取第一个。
    String:是字符串" "和''中的字符就是字符串,和字符串相加会被隐式转换,toString()可以把别的类型转化为字符串。
    Object:代表对象,其实就是数据和功能的集合。创建对象var obj = new Object()。
    

    五、操作符

    1、一样操作符:--++递减和递增,--2前置优先级高,2--后置优先级降低。一元'+',在非数字类型前会隐式转换成数值。一元'-'会把数值变成负数,非数值和一元加一样。
    2、位操作:暂略过。
    3、布尔操作符:非、&&与两个都是真、||或有一个为真。
    4、乘性操作符:*乘、/除、%余(求模)。
    5、加性操作符:+加、-减。
    6、关系操作符:<=>=<>.
    7、相等操作符:==相等操作符会隐式转换类型进行比对、===全等于不会转换类型比对,比较严谨。
    8、条件操作符:var value = trueAndFalse ? true : false;
    9、赋值操作符:=*=/=%=+=-=<<=>>=>>>=、简化用的,并不能提升性能。
    10、逗号操作符:可以在一行执行多个操作,var a,b,c,d;还可以赋值var a=(1,2,3,4)//a是4。

    六、语句

    //if语句
    if(true){true执行此处代码块}else{false执行此处代码}
    if(true){true执行此处代码块}else if(true){false执行此处代码}.多个..else{false执行此处代码}
    //do...while语句
    do...while语句是后测试语句,do...while中的代码至少执行一次。
    do{true执行的代码}while(条件为true)
    while语句
    while是前测试语句,只有在达到条件就是为true才会执行。
    while(false and true){是true则执行此处代码}。
    for语句
    for循环,也是个前测试语句
    for(声明变量;运算条件;变量变化){循环代码}
    for....in...语句
    for...in...语句是一个精准的迭代语句,可以用来枚举对象属性
    for(property in expression){执行的代码}
    label语句
    将要返回的标签。多和break和continue一起使用,多用于嵌套循环,跳到标签指定位置。
    标签名:for(;;){break 标签名}
    break和continue
    break是直接跳出当前循环,continue也是跳出循环但是会从循环顶端再次执行。
    with语句
    将代码作用于一个对象的作用域中,少使用会降低性能
    with(对象){该对象的私有作用域}
    switch语句
    流程控制语句和if很想
    switch(将要判断的对象){
    case (判断)://如果是将执行以下代码
            代码;
            break;//执行完跳出
    case (判断2)://如果是将执行以下代码
            代码;
            break;//执行完跳出
    default://如果都不是将执行以下代码
            代码;
    }
    

    七函数

    函数是每一个语言的核心概念,通过封装多条语句,可以在调用。ECMAScript通过function关键字来声明,后面跟一组参数和函数体。

    1、参数

    函数的参数没有限制可以任意传,也可以是任意类型,函数的参数是有arguments对象来管理的。arguments对象和数组类似但不是数组,可以通过[]来访问,使用length可以查看arguments的长度。严格模式对arguments做了限制,重写arguments的值会报错。
    2.没有重载
    JavaScript没有重载,通过传入不同的参数和类型可以模拟重载,两个相同的名的函数,后面会吧前面覆盖。

    小结

    本章主要介绍了,JavaScript的语法和数据类型(六个)五个基本类型一个引用类型,各个操作符,还有流程控制语句,以及函数的简单理解。

    (暂停)

    相关文章

      网友评论

          本文标题:JavaScript高级程序设计读书笔记(三)之JS基本概念

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