1. 注释
// 以双斜杠开头直到行末的是注释,注释是给人看的,会被浏览器忽略/* 在这中间的也是注释,将被浏览器忽略 */
2. 基础语法
-
JavaScript的语法和Java语言类似,每个语句以;结束,语句块用{...}。
-
JavaScript并不强制要求在每个语句的结尾加;浏览器中负责执行JavaScript代码的引擎会自动在每个语句的结尾补上;。
-
JavaScript严格区分大小写,如果弄错了大小写,程序将报错或者运行不正常。
# 赋值语句
var x = 1;
下面的一行代码包含两个语句,每个语句用;表示语句结束:
var x = 1; var y = 2; // 不建议一行写多个语句!# 语句块是一组语句的集合,例如,下面的代码先做了一个判断,如果判断成立,将执行{...}中的所有语句:if (2 > 1) {x = 1;y = 2;z = 3;}"注意花括号{...}内的语句具有缩进,通常是4个空格。缩进不是JavaScript语法要求必须的,但缩进有助于我们理解代码的层次,
所以编写代码时要遵守缩进规则。很多文本编辑器具有“自动缩进”的功能,可以帮助整理代码。"# {...}还可以嵌套,形成层级结构:if (2 > 1) {x = 1;y = 2;z = 3;if (x < y) {z = 4;}if (x > y) {z = 5;}}
-
输出:
console.log('Hello,world') //Hello,world
3. 数据类型
3.1 Number:
-
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:
123; // 整数1230.456; // 浮点数0.4561.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5-99; // 负数NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity"要注意,JavaScript的Number不区分整数和浮点数,也就是说,12.00 === 12。(在大多数 其他语言中,整数和浮点数不能直接比较)并且,JavaScript的整数最大范围不是±2^63,而是±2^53,因此,超过2^53的整数就可能无法精确表示:"
-
示例:
console.log(1+3) // 4console.log((1+3)*3) // 12console.log(2/0) //Infinityconsole.log(0/0) //NaNconsole.log(10 % 3) // 1 取余console.log(10.5 % 3)// 1.5// 计算圆面积:var r = 1;var s = 3.14 * r * r;console.log(s) //3.14// 打印Number能表示的最大整数:console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991console.log(Number.MAX_SAFE_INTEGER + 1); // 9007199254740992console.log(Number.MAX_SAFE_INTEGER + 2); // 9007199254740992(精度丢失)
3.2 BigInt
-
要精确表示比2^53还大的整数,可以使用内置的BigInt类型,
-
它的表示方法是在整数后加一个n,例如9223372036854775808n
-
也可以使用BigInt()把Number和字符串转换成BigInt:
-
使用BigInt:
var bi1 = 9223372036854775807n; var bi2 = BigInt(12345); var bi3 = BigInt("0x7fffffffffffffff"); console.log(bi1 === bi2); // false console.log(bi1 === bi3); // true console.log(bi1 + bi2); //9223372036854788152n console.log(bi3) //9223372036854775807n使用BigInt可以正常进行加减乘除等运算,结果仍然是一个BigInt,但不能把一个BigInt和一个Number放在一起运算console.log(1234567n + 3456789n); // OK console.log(1234567n / 789n); // 1564, 除法运算结果仍然是BigInt console.log(1234567n % 789n); // 571, 求余 console.log(1234567n + 3456789); // Uncaught TypeError: Cannot mix BigInt and other types
3.3 null和undefined
null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。
但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,区分两者的意义不大。大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。
3.4 布尔值
-
布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值,要么是true,要么是false
-
可以直接用true、false表示布尔值,也可以通过布尔运算计算出来:
true; // 这是一个true值 false; // 这是一个false值 2 > 1; // 这是一个true值 2 >= 3; // 这是一个false值 console.log(2>1) // true console.log(0>1) // false
4. 运算符
-
&&运算是与运算,只有所有都为true,&&运算结果才是true:
true && true; // 这个&&语句计算结果为true true && false; // 这个&&语句计算结果为false false && true && false; // 这个&&语句计算结果为false
-
||运算是或运算,只要其中有一个为true,||运算结果就是true:
false || false; // 这个||语句计算结果为false true || false; // 这个||语句计算结果为true false || true || false; // 这个||语句计算结果为true
-
!运算是非运算,它是一个单目运算符,把true变成false,false变成true:
! true; // 结果为false! false; // 结果为true! (2 > 5); // 结果为true
-
布尔值经常用在条件判断中
var age = 15;if (age >= 18) {alert('adult');} else {alert('teenager');}