Node-概述基础语法
Posted 我真的爱敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node-概述基础语法相关的知识,希望对你有一定的参考价值。
Node开发概述
为什么要学习服务器端开发基础:
- 能够和后端程序员更加紧密的配合
- 网站业务逻辑前置,学习前端技术需要后端技术支撑(Ajax)
- 扩宽知识视野,站在更高的角度审视整个项目
服务器端开发要做的事情:实现网站的业务逻辑、数据的增删改查
Node是什么?
Node是一个基于Chrome V8引擎的javascript代码运行环境。
以前学的JS只能在客户端运行,有了Node以后就可以在服务器运行,真正使JS成为一门程序设计语言
运行环境:
- 浏览器(软件)能够运行JavaScript代码,浏览器就是JavaScript代码的运行环境
- Node(软件)能够运行JavaScript代码,Node就是JavaScript代码的运行环境
Node.js特点:
-
非阻塞I/O:(Node核心)
- 又称异步式I/O,是Node.js的重要特点 - 提高Node程序的执行效果 - 非阻塞:异步,阻塞:同步
-
事件驱动(Node核心)
-
单线程
- Node.js的应用程序是单线程、单进程,但通过事件和回调支持并发,性能变得非常高 - 在非阻塞模式下,线程不会被I/O操作阻塞,该线程所使用的CPU核心利用率永远是100%
Node.js的应用场合:
REST API(一种前后端分离的应用程序架构)、单页Web应用、统一Web应用的UI层、准实时系统(如聊天系统、微博系统、博客系统的准实时社交系统,对系统的实时性要求不是很高)、游戏服务区(不必使用C语言就能开发游戏的服务器程序)、微服务架构
Node.js的组成
- JavaScript 由三部分组成,ECMAScript,DOM,BOM。
- Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的 API。
Node.js基础语法
所有ECMAScript语法在Node环境中都可以使用。
在Node环境下执行代码,使用Node命令执行后缀为.js的文件即可
-
每条语句都以“;”结束(注:也可以没有“;”)
-
一行可以有多条语句(注:若一行有多条语句,每条语句都要以“;”结束。建议一行只有一条语句)
-
若一行语句太长,可以用“****”进行续行
-
语句块:由多条语句组成,这些语句都在“{ }”中
-
注释:单行注释:“
//
”;多行注释:“/*……*/
注:在WebStorm软件中,单行注释的快捷键:Ctrl+’/’;多行注释的快捷键:Ctrl+shift+’/’ -
变量:
1)可以是任意的数据类型 2)变量名是字母、数字、下划线("_")、‘$’组成的字符序列,但是==首字符不能是数字== 3)JavaScript是==弱类型语言==,在定义变量时不需要指定变量的类型,都可以使用关键字var声明
var name = "邮电大学"
或
name = "邮电大学"
可以在声明变量的同时赋值,也可以先声明变量然后再赋值
var age;
age = 25
变量可以反复的赋值
var sex = '男';
sex = '女';
sex = 'male'
-
变量的提升:在ES5中变量可以在声明之前使用,它的值是undefined
在ES6中使用let关键字声明变量,变量不能在声明之前使用 -
变量值的泄露:在语句块中使用var关键字声明的变量,会被提升为全局变量,这样就会造成局部变量值的泄露。防止变量值的泄露方法是使用let关键字声明局部变量
-
全局作用域和函数作用域:
1) ES5中作用域只有两个: 全局作用域:从声明的位置开始到源程序的结束均有效 函数作用域:只在函数范围内有效 2) ES6中增加的块级作用域:在ES6中使用let关键字声明的变量只在它所在的块级作用域中有效
-
ES6中使用const定义只读常量
const PI = 3.1415926;
Node数据类型
-
Number:数值类型,不区分整数和浮点数
i. 二进制以0b开头,八进制数以0o开头,十六进制以0x开头 ii. 若不能计算出结果显示为NaN(Not a Number)
-
String:字符串,使用单引号或双引号括起来的文本(字符序列)
i. ES6提供模板字符串“:用户反引号将模板字符串括起来,用${ }将变量括起来 例如:
var host = 'http://localhost';
var port = 8080;
var url = `API接口为:${host}:${port}`;
console.log(url)
ii. 模板字符串中可以不嵌入任何变量,按实际格式输出
例如:
var str = `模板字符串测试:\\n你的眼中明暗交杂一笑生花`;
console.log(str);
-
Boolean:布尔型,值只有两个true、false
注意:在比较等于时,建议使用而不是 -
null和undefined的区别:
null:表示空值,即什么也没有 undefined:表示‘未定义’,通常用于判断函数的参数是否正常传递
-
Array:数组
i. 数组用[ ]表示,元素之间用逗号分隔 ii. 数组元素可以是任意类型 iii. 通过数组名带索引访问数组元素,索引的范围是0~数组长度-1
-
object:对象
i. 用‘{ }’表示,是由键值对组成的无序集合,键值对之间用逗号分隔。‘键’就是对象的属性 ii. 键的类型必须是字符串类型,值可以是任意类型 iii. 通过‘对象名.属性名(键名)’来访问对象的属性 iv. 在ES6中允许将表达式作为键名,但必须表达式必须放在‘[ ]’中
-
Symbol:符号,是ES6引入的新类型,用来表示一个独一无二的值,这个值可以作为对象的属性,表示方式有三种:
var temp = Symbol();
let obj = { }
obj[temp] = "值"
var temp = Symbol();
let obj = { [temp]:"值" }
let obj2 = {}
Object.defineProperty(obj2,k,{value: 'AAAAAAAAAA'})
console.log(obj2)
-
Set:集合。类似于数组,集合中的成员的值不能重复,都是唯一的
i. Set函数可以接受一个数组作为参数 例:
var arr = [5,2,7,5,2,5,8];
const s1 = new Set(arr);
console.log(s1)
ii. 属性
constructor:构造函数
size:表示集合的元素个数
例:
console.log(s1.constructor) //构造函数
console.log(s1.size) //集合的元素个数
iii. 方法(函数):
add(x):将x添加到集合中
delete(x):删除集合中的x,返回的是布尔值
has(x):返回布尔值,表示x是否是集合的成员
clear():清除所有成员,没有返回值
Node.js全局对象global
在浏览器中全局对象是window,在Node中全局对象是global。
Node中全局对象下有以下方法,可以在任何地方使用,global可以省略。
方法 | 说明 |
---|---|
console.log() | 在控制台中输出 |
setTimeout() | 设置超时定时器 |
clearTimeout() | 清除超时时定时器 |
setInterval() | 设置间歇定时器 |
clearInterval() | 清除间歇定时器 |
以上是关于Node-概述基础语法的主要内容,如果未能解决你的问题,请参考以下文章