JS学习记录
1. 运行环境
直接在PC上创建好HTML和JavaScript文件,然后用浏览器打开,不一定看得到效果。这种方式运行部分JavaScript代码没有问题,但由于浏览器的安全限制,以file://开头的地址无法执行如联网等JavaScript代码,最终,你还是需要架设一个Web服务器,然后以http://开头的地址来正常执行所有JavaScript代码。
2. 基本语法
JS不要求语句结束一定要加分号,理论上JS引擎会自动添加,但是有时候可能会出问题,还是加上比较好。
跟C++一样,可以只写一个表达式作为一个语句(尽管这没有意义)。
字符串可以用''或者""包起来,复合语句也是用{}包起来,注释也是//或者/**/。
JS区分大小写。
3. 数据类型
Number:JS中不区分浮点数和整数,二者统一用Number类型表示。所以浮点数和整数可以直接比较。甚至浮点数都可以取余。
一些特殊的数值:
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
0x...表示16进制数,0o...表示8进制数,注意8进制数不用0...表示,这样有时候会变成8进制数,有时候会变成10进制数,可以开启strict模式禁止单独0开头的数字。
"use strict";
-
字符串、布尔值:和C++一样,字符串还可以用单引号表示。
-
比较运算:实际上JS允许不同数据类型作比较。对于等于判定,
===会先看数据类型是否一致,一致才判断,否则一律返回false。
false == 0; // true
false === 0; // false
NaN这个特殊的Number与所有其他值都不相等,包括它自己:
NaN === NaN; // false
唯一能判断NaN的方法是通过isNaN()函数:
isNaN(NaN); // true
-
高精度整数:
BigInt,可以在常数后面加一个n,比如12345n,也可以用构造函数把Number和字符串转成BigInt,比如BigInt(123)。 -
空值:
null表示空值,它不表示任何东西。还有一个undefined,表示值未定义,区分两者意义不大。通常用null,undefined仅仅在判断函数参数是否传递的情况下有用。 -
数组,语法和C++一样,用中括号表示,但是每个元素的类型不一定要相同。
-
变量需要定义。
console.log(x);可以显示x的值。
期初JS的变量不用声明,自动变成全局变量。开启strict模式可以让所有变量强制使用var声明,不然报错。
- 关于作用域
var声明的变量类似python,只有函数内部变量和全局变量之分,复合语句(比如循环)内部的变量的块级作用域不存在。
let和const声明的变量类似C++,有块级作用域。
4. 字符串
类似'和"都可以表示,反引号 ` 可以表示。(markdown用更多反引号包裹反引号来显示)。

浙公网安备 33010602011771号