美文网首页
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