NodeJs基本语法和类型

今天想要查下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);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgfffx.html