今天想要查下Node的类型什么的知识,想要总结下,在Googol上看到一个文章,但是原始的链接不在了,在快照中把这篇文章拉出来,如果原作者有问题,请联系我!
该文章都是一些JS的基础,高手自动跳过!我之前没怎么写过js,这方面比较弱,所以在写node的时候也遇到了麻烦,这里给自己补充下知识!
正文
Node.js 的基础是 JavaScript 这门 脚本语言。而大多数的脚本语言一个共同的特点就是“弱类型”。
不同于 PHP 的是,PHP 就是是有了新变量也无需申明,而 JavaScript 则还是需要 var 来申明一下的。而这个 var 涵盖了 C++ 中的int、string、char等一切类型的含义,甚至是 function。
本篇以及后篇的所有内容都是在 Linux 或者 Cygwin 下用 vim 进行编辑(若不是则请自行转变成你自己的方法),然后在命令行下进行查看结果的。
基本语法
变量声明
在 C/C++ 中,我们这么声明变量的:
```C++
复制代码 代码如下:
void foo() {}
int a = 0;
char b = 'a';
float c = 1.0f;
void (*d)() = foo; ///< 忘了是不是这么写的了,总之是函数指针
而在 Node.js 中则是这样的:
```javascript
复制代码 代码如下:
function foo() {}
var a = 0;
var b = 'a';
var c = 1.0;
var d = foo;
所以,无论是什么类型的变量,在 Node.js 中都是以一个 var 来解决的。
循环语句
for…i
这个循环语句基本上跟 C/C++ 一样,都是
```C++
复制代码 代码如下:
for(int i = 0; i < foo; i++)
{
//...
}
而鉴于 Node.js 是弱类型,所以只需要:
```javascript
复制代码 代码如下:
for(var i = 0; i < foo; i++) {
//...
}
for…in
这是一种后有型的循环语句,类似于 PHP 的 foreach。
比如我们有一个 JSON对象 如下:
javascript
复制代码 代码如下:
var foo = {
"hello" : "world",
"node" : "js",
"blahblah" : "bar"
};
这个时候我们就可以用 for...in 来循环遍历了:
javascript
复制代码 代码如下:
for(var key in foo) {
console.log(key + ": " + foo[key]);
}
我们如果在命令行中打入下面的命令:
复制代码 代码如下:
$ node foo.js
屏幕上就会显示下面的内容了:
复制代码 代码如下:
hello
: world
node: js
blahblah: bar
提示:由上可知,for...in 语句是用来遍历 JSON对象、数组、对象的键名的,而不提供键值的遍历。如果要获取键值,只能通过foo[<当前键名>]的形式来获取。这个跟 PHP 的 foreach 还是有一定区别的。
while…do, do…whill
这个就不多做解释了,跟其它语言没什么大的区别,无非就是如果有变量声明的话,需要用 var 就够了。
运算符
+, -, *, /
这几个运算符也就这样,要注意的是 +。它既可以作用于字符串,也可以作用于数值运算。弱类型语言虽然说类型是弱的,数字有时候可以以字符串的形态出现,字符串有时候可以用数值的形态出现,但是在必要的时候也还是要说一下它是什么类型的,我们可以用下面的代码去看看结果:
复制代码 代码如下:
var a = "1";
var b = 2;
console.log(a + b);
console.log(parseInt(a) + b);
这里的 parseInt 是 Node.js 的一个内置函数,作用是将一个字符串解析成 int 类型的变量。
上面的代码执行结果是:
复制代码 代码如下:
12
3
注:第一个 console.log 结果是 12,由于 a 是字符串,所以 b 也被系统以字符串的姿态进行加操作,结果就是将两个字符串黏连在一起就变成了 12。而第二个 console.log 结果是 3,是因为我们将第一个 a 转变为了 int 类型,两个 int 型的变量相加即数值相加,结果当然就是 3 了。
==, =https://www.jb51.net/article/==, !=, !==
这里有一点要解释,当这个逻辑运算符长度为 2 的时候(==, !=),只是判断外在的值是不是一样的,而不会判断类型。如
复制代码 代码如下:
var a = 1, b = "1";
console.log(a == b);