美文网首页
JavaScript - New

JavaScript - New

作者: ft207741 | 来源:发表于2018-10-01 05:54 被阅读0次

    Menu

    • 语法和类型
      • 声明
        • 变量提升
        • 函数提升
      • 数据结构和类型
        • 数据类型的转换
      • 字面量
        • 数组字面量(Array literals)
        • 布尔字面量(Boolean literals)
        • 浮点数字面量(Floating-point literals)
        • 整数(Integers)
        • 对象字面量(Object literals)
        • RegExp literals
        • 字符串字面量(String literals)

    JavaScript有三种声明方式。

    • var
      • 声明一个变量,可赋一个初始化值。
    • let
      • 声明一个块作用域的局部变量,可赋一个初始化值。
    • const
      • 声明一个块作用域的只读的命名常量。
      • 对象属性和数组的内容是可以修改的
    变量提升
    • 变量提升:可以引用稍后声明的变量而不会引发异常;
    • 变量感觉上是被“提升”或移到了函数或语句的顶部。然而提升后的变量将返回 undefined 值;
    • let(const)将不会提升变量,在变量声明之前引用这个变量,将抛出错误ReferenceError;
    函数提升
    • 对于函数,只有函数声明会被提升到顶部,而不包括函数表达式。

    数据结构和类型

    数据类型
    • JavaScript语言可以识别下面 7 种不同类型的值:
      • 六种 原型 数据类型:
        • Boolean:布尔值,true 和 false.

        • null:一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或其他变量完全不同。

        • undefined:变量未定义时的属性。

        • Number:表示数字,例如: 42 或者 3.14159。

        • String: 表示字符串,例如:"Howdy"

        • Symbol ( 在 ECMAScript 6 中新添加的类型):一种数据类型,它的实例是唯一且不可改变的。

      • Object 对象
    //null
    var foo = null; 
    document.write(foo);  //null
    
    //Symbol
    let id1 = Symbol("id");
    let id2 = Symbol("id");
    
    alert(id1 == id2); // false
    
    数据类型的转换
    • "+"运算时,数字值转换为字符串, 其它运算符则不会;
    "37" - 7 // 30
    "37" + 7 // "377"
    
    • 字符串转换为数字
      • parseInt()
      • parseFloat()
      • 单目加法运算符
    x = (+"1.1") + (+"1.1") // 括号可以去掉
    document.write(x); //2.2
    

    字面量

    • 字面量是脚本中按字面意思给出的固定的值,是常量, 不可更改,比如false,3.1415
    数组字面量(python中的列表)
    • 同一行中连写两个逗号,数组中就会产生一个没有被指定的元素,其初始值是undefined
    var list1 = ["a", , "b"];
    document.write(list1[1]); //undefined 
    
    • 如果列表的尾部添加了一个逗号,它将会被忽略;
    var l = ["a", , "b",];
    document.write(list1.length); // 3
    
    • 布尔字面量
      • 不要混淆作为布尔对象的真和假与布尔类型的原始值true和false。
    • 对象字面量
      • 对象字面值是封闭在花括号对({})中的一个对象的零个或多个"属性名-值"对的(元素)列表。
      • 如果对象属性名字不是合法的javascript标识符,它必须用""包裹。属性的名字不合法,那么便不能用.访问属性值,而是通过类数组标记("[]")访问和赋值。
    var obj = {
      " ": "value1",
      "!": "value2"
    }
      console.log(obj." "); // Unexpected string
      document.write(obj[""]); //value1
      console.log(obj.!); //Unexpected token !
    

    请注意:

    var foo = {a: "alpha", 2: "two"};
    console.log(foo.a);    // alpha
    console.log(foo[2]);   // two
    //console.log(foo.2);  // SyntaxError: missing ) after argument list
    //console.log(foo[a]); // ReferenceError: a is not defined
    console.log(foo["a"]); // alpha
    console.log(foo["2"]); // two
    
    • RE字面值
      • 一个正则表达式是字符被斜线围成的表达式。

    相关文章

      网友评论

          本文标题:JavaScript - New

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