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字面值
- 一个正则表达式是字符被斜线围成的表达式。