# 语法和数据类型MDN
# 变量
变量是表示值的一个符号名字
# 如何声明一个变量
javaScript有三种声明方式
# var
声明一个变量,可选初始化一个值。
var a;
console.log("The value of a is " + a); // a 的值是 undefined
console.log("The value of b is " + b);// b 的值是 undefined (变量提升)
var b;
console.log("The value of c is " + c); // 未捕获的引用错误: c 未被定义
1
2
3
4
5
6
7
2
3
4
5
6
7
# let
声明一个块作用域
的局部变量,可选初始化一个值。
let x;
console.log("The value of x is " + x); // x 的值是 undefined
console.log("The value of y is " + y);// 未捕获的引用错误: y 未被定义
let y;
1
2
3
4
5
2
3
4
5
# const
声明一个块作用域
的只读
常量,不可改变(数组和对象属性可以修改)。
const PI = 3.14;
PI = 3.1415926; // 未捕获的语法错误,常数变量赋值
const obj = {
name: "小明"
};
obj.name = "小红"
console.log(obj.name); //小红
const arr = [1,2,3,4];
arr[0] = 0;
console.log(arr); //[0,2,3,4]
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 数据结构和类型
# 数据类型
七种基本数据类型
栈(stack)
- 布尔值(Boolean),有2个值分别是:
true
和false
。 - null , 一个表明
null
值的特殊关键字。 JavaScript 是大小写敏感的,因此null
与Null
、NULL
或变体完全不同。 - undefined ,和 null 一样是一个特殊的关键字,undefined 表示变量未定义时的属性。
- 数字(Number),整数或浮点数,例如: 42 或者 3.14159。
let a; // 数值类型环境中 undefined 值会被转换为 NaN a + 1; // NaN //NaN是一个特殊的Number,与其他所有值都不相等,包括它自身 console.log(NaN === NaN) // false //唯一识别NaN的方法 console.log(isNaN(NaN)) //true
1
2
3
4
5
6
7- 任意精度的整数 (BigInt) ,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。(尚未添加到规范)
- 字符串(String),字符串是一串表示文本值的字符序列,例如:"Howdy"。
- 代表(Symbol) ( 在 ECMAScript 6 中新添加的类型).。一种实例是唯一且不可改变的数据类型。
- 布尔值(Boolean),有2个值分别是:
引用类型
堆(heap)
- Object
万物皆对象
const obj1 = { name: "小明" }; const obj2 = obj1; // 传地址,并不是传值。浅拷贝 obj2.name = "小红"; console.lo(obj1.name); // 小红 console.lo(obj2.name); // 小红
1
2
3
4
5
6
7- Function
- Array
- 等
- Object
# 类型转换
JavaScript是一种动态类型语言(dynamically typed language)。这意味着你在声明变量时可以不必指定数据类型,而数据类型会在代码执行时会根据需要自动转换。因此,你可以按照如下方式来定义变量:
var answer = 42;
answer = "Thanks for all the fish...";
// 数字和字符串使用加法会把数字转换成字符串
x = "The answer is " + 42 // "The answer is 42"
y = 42 + " is the answer" // "42 is the answer"
"37" - 7 // 30
"37" + 7 // "377"
"37" + NaN // "37NaN"
37 + NaN // NaN
37 + undefined //NaN
37 + null // 37
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13