本文最后更新于:2022年7月4日 上午
本文记录 node.js 最基本的语法。
数据类型
Node.js有一些核心类型:number,boolean,string,object、undefined 和 function。
可以使用 typeof
查看数据类型
number
数字
boolean
true 和 false
1 2
| typeof(true) typeof(false)
|
string
字符串
object
node.js 对象,由 {} 定义 或 new Object();
1 2 3 4 5 6 7 8 9
| var user = { first_name: "HTML", last_name: "CSS", age: 32, }; var empty = new Object()
console.log(typeof(user)) console.log(typeof(empty))
|
undefined
意味着尚未设置或根本不存在
1 2 3
| var a typeof(a) typeof(askfalsjdflasf)
|
function
函数类型
1 2 3 4 5 6
| function hello(name) { console.log("hello " + name); }
hello('abc') console.log(typeof(hello))
|
运算符表达式
算术运算符
1 2 3 4 5 6
| var a = 10; a = 4 * 23 + 188 / 6; var c = 7; var b = (a + c) / 2; console.log(a); console.log(b);
|
比较运算符
- 等于==,小于等于<=,大于等于 >=,不等于 !=
1 2 3 4 5
| console.log(a > b); console.log(a == b); console.log(a <= b); console.log(a != b);
|
逻辑运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
console.log("&&&&&&&&&"); console.log(false && false); console.log(false && true); console.log(true && false); console.log(true && true);
console.log("||||||||||||"); console.log(false || false); console.log(false || true); console.log(true || false); console.log(true || true);
console.log((false && false) || true); console.log(false && (false || true));
console.log(!true) console.log(!false)
|
字符串相关运算符
1 2 3 4 5 6 7 8 9 10
| var str = "Hello i am "; var name = "a girl" var str_total = (str + name); console.log(str, name, str_total);
var num_str = " " + a + b + c + true; console.log(num_str);
|
简约表达式
1 2 3 4 5
| // 简约的写法 a += c; // a = a + c; a -= c; // a = a - c; a *= c; // a = a * c; a /= c; // a = a / c;
|
1 2 3 4
| a ++; // a = a + 1; ++ a; // a = a + 1; a --; // a = a - 1; -- a; // a = a - 1;
|
条件语句
if 语句
语法
示例
1 2 3 4
| > if (a > b) { console.log("a is bigger") }
|
语法
1 2 3 4 5 6 7
| if (条件判断) { 主体 } else { 主体 }
|
示例
1 2 3 4 5 6 7 8
| if (a > b) { console.log("a is bigger") } else { console.log("b is bigger") }
|
语法
1 2 3 4 5 6 7 8
| if(条件判断) { } else if { } ... else { }
|
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| if (a == 1) { console.log("a is 1") } else if(a == 2) { console.log("a is 2") } else if(a == 3) { console.log("a is 3") } else if(a == 4) { console.log("a is 4") } else { console.log("a is " + a) }
|
switch 语句
语法
1 2 3 4 5 6
| switch(变量) { case 常量1: break; case 常量2: break; }
|
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| var a = 2
switch (a) { case 1: { console.log("a is 1") break }
case 2: { console.log("a is 2") break }
case 3: { console.log("a is 3") break } case 4: { console.log("a is 4") break } default: { console.log("final a is " + a) } }
|
循环语句
while 语句
语法
示例
1 2 3 4 5 6 7 8 9 10 11 12 13
| //while(条件成立) {循环体代码}; index = 0; while(index < 10) { // 循环执行了10次;判断一下, 循环条件是否为真,为真就执行,否者就不执行循环体; console.log(index); index += 2; } console.log("out of while"); /* // 死循环,如果任何时候,这个循环判断条件都为真,那么就是死循环,代码就在循环体里面一直执行; while(true) { // 死循环,一直执行while语句 console.log("while call true"); } */
|
for 语句
语法
1
| for(初始化; 循环条件; 循环迭代) {循环体}
|
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| var walk = 0; var i = 1; for(walk = 0, i = 1; i <= 10; walk += 2, i ++) { console.log(walk); }
walk = 0; i = 1; for(; i <= 10; walk += 2, i ++) { } console.log("out for");
i = 6; for(; i < 10;) { console.log("for loop"); i ++; }
|
do while 语句
语法
示例
1 2 3 4 5 6
| // for, while是先判断后执行,do{} while(); 先执行, 再判断是否继续执行循环 i = 0; do { i ++; console.log(i); }while(i < 10);
|
循环控制语句
continue
终止当前循环体的本次循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| i = 1; for(i = 1; i <= 10; i ++) { if (i == 8) { continue; }
console.log("give hime " + i); }
i = 1; while(i <= 10) { if (i == 8) { console.log("while continue"); i ++; continue; }
console.log("while give hime " + i); i ++; }
|
break
结束最近一个循环体所有的循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| i = 1; for(i = 1; i <= 10; i ++) { if (i == 8) { break; }
console.log("give hime " + i); } console.log("end_for", i);
i = 1; while(i <= 10) { if (i == 8) { console.log("while continue"); i ++; break; } console.log("while give hime " + i); i ++; } console.log("end while");
|
字符串常用操作
indexOf
要查找具有另一个字符串的字符串,请使用indexOf
函数:
1 2 3 4
| var i = "this is a test".indexOf("is"); console.log(i); -> 2
|
substr和splice
要从字符串中提取子字符串,请使用substr
或splice
函数。
substr
获取要提取的字符串的起始索引和长度。splice
取起始索引和结束索引:
1 2 3 4 5 6 7 8 9 10 11
| var s = "this is a test string."
console.log(s.substr(19, 3)) console.log(s.substr(-5)) console.log(s.slice(19, 22)) console.log(s.slice(-5)) -> ng. ring. ng. ring.
|
Split
要将字符串拆分为子字符串,请使用split函数并获取数组作为结果:
1 2 3 4
| var s = "a|b|c|d|e|f|g|h".split("|"); console.log(s); -> ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
|
trim
trim函数从字符串的开头和结尾删除空格:
1 2 3 4
| var s = " cat \n\n\n ". trim(); console.log(s); -> cat
|
replace
replace替换字符串
1 2 3 4
| var s = "cat" console.log(s.replace('cat', 'dog')) -> dog
|
String 对象属性
String 对象方法
String HTML 包装方法
HTML 包装方法返回加入了适当HTML标签的字符串。
Math 常用功能
完整介绍:https://www.w3cschool.cn/jsref/jsref-obj-math.html
Math 属性
属性 |
描述 |
E |
返回算术常量 e,即自然对数的底数(约等于2.718)。 |
LN2 |
返回 2 的自然对数(约等于0.693)。 |
LN10 |
返回 10 的自然对数(约等于2.302)。 |
LOG2E |
返回以 2 为底的 e 的对数(约等于 1.414)。 |
LOG10E |
返回以 10 为底的 e 的对数(约等于0.434)。 |
PI |
返回圆周率(约等于3.14159)。 |
SQRT1_2 |
返回返回 2 的平方根的倒数(约等于 0.707)。 |
SQRT2 |
返回 2 的平方根(约等于 1.414)。 |
Math 方法
方法 |
描述 |
abs(x) |
返回 x 的绝对值。 |
acos(x) |
返回 x 的反余弦值。 |
asin(x) |
返回 x 的反正弦值。 |
atan(x) |
以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
atan2(y,x) |
返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 |
ceil(x) |
对数进行上舍入。 |
cos(x) |
返回数的余弦。 |
exp(x) |
返回 Ex 的指数。 |
floor(x) |
对 x 进行下舍入。 |
log(x) |
返回数的自然对数(底为e)。 |
max(x,y,z,…,n) |
返回 x,y,z,…,n 中的最高值。 |
min(x,y,z,…,n) |
返回 x,y,z,…,n中的最低值。 |
pow(x,y) |
返回 x 的 y 次幂。 |
random() |
返回 0 ~ 1 之间的随机数。 |
round(x) |
把数四舍五入为最接近的整数。 |
sin(x) |
返回数的正弦。 |
sqrt(x) |
返回数的平方根。 |
tan(x) |
返回角的正切。 |
垃圾回收
- 一个对象如果没有任何引用变量指向这个对象会被判定为垃圾对象;
- 在特定的时期js解释引擎会回收复杂对象的内存;
- 垃圾回收
- 没有任何变量,保存了这个对象的引用;
- 在特定的时候,由js解释引擎(v8)特定的时期回收
参考资料
文章链接:
https://www.zywvvd.com/notes/coding/node-js/node-js-grammer/node-js-grammer/