Node-概述、基础语法


Node开发概述

为什么要学习服务器端开发基础:

  • 能够和后端程序员更加紧密的配合
  • 网站业务逻辑前置,学习前端技术需要后端技术支撑(Ajax)
  • 扩宽知识视野,站在更高的角度审视整个项目

服务器端开发要做的事情:实现网站的业务逻辑、数据的增删改查

Node是什么?

Node是一个基于Chrome V8引擎的JavaScript代码运行环境。
以前学的JS只能在客户端运行,有了Node以后就可以在服务器运行,真正使JS成为一门程序设计语言

运行环境:

  • 浏览器(软件)能够运行JavaScript代码,浏览器就是JavaScript代码的运行环境
  • Node(软件)能够运行JavaScript代码,Node就是JavaScript代码的运行环境

Node.js特点:

  1. 非阻塞I/O:(Node核心)

     - 又称异步式I/O,是Node.js的重要特点
     - 提高Node程序的执行效果
     -  非阻塞:异步,阻塞:同步
    
  2. 事件驱动(Node核心)

  3. 单线程

     - Node.js的应用程序是单线程、单进程,但通过事件和回调支持并发,性能变得非常高
     - 在非阻塞模式下,线程不会被I/O操作阻塞,该线程所使用的CPU核心利用率永远是100%
    

Node.js的应用场合:
REST API(一种前后端分离的应用程序架构)、单页Web应用、统一Web应用的UI层、准实时系统(如聊天系统、微博系统、博客系统的准实时社交系统,对系统的实时性要求不是很高)、游戏服务区(不必使用C语言就能开发游戏的服务器程序)、微服务架构

Node.js的组成

  • JavaScript 由三部分组成,ECMAScript,DOM,BOM。
  • Node.js是由ECMAScriptNode 环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的 API。
    在这里插入图片描述

Node.js基础语法

所有ECMAScript语法在Node环境中都可以使用。
在Node环境下执行代码,使用Node命令执行后缀为.js的文件即可
在这里插入图片描述

  1. 每条语句都以“;”结束(注:也可以没有“;”)

  2. 一行可以有多条语句(注:若一行有多条语句,每条语句都要以“;”结束。建议一行只有一条语句)

  3. 若一行语句太长,可以用“****”进行续行

  4. 语句块:由多条语句组成,这些语句都在“{ }”中

  5. 注释:单行注释:“//”;多行注释:“/*……*/
    :在WebStorm软件中,单行注释的快捷键:Ctrl+’/’;多行注释的快捷键:Ctrl+shift+’/’

  6. 变量

     1)可以是任意的数据类型
     2)变量名是字母、数字、下划线("_")、‘$’组成的字符序列,但是==首字符不能是数字==
     3)JavaScript是==弱类型语言==,在定义变量时不需要指定变量的类型,都可以使用关键字var声明			
    
var name = "邮电大学"
或
name = "邮电大学"

可以在声明变量的同时赋值,也可以先声明变量然后再赋值

var age;
age = 25

变量可以反复的赋值

var sex = '男';
sex = '女';
sex = 'male'
  1. 变量的提升:在ES5中变量可以在声明之前使用,它的值是undefined
    ES6中使用let关键字声明变量,变量不能在声明之前使用

  2. 变量值的泄露:在语句块中使用var关键字声明的变量,会被提升为全局变量,这样就会造成局部变量值的泄露。防止变量值的泄露方法是使用let关键字声明局部变量

  3. 全局作用域和函数作用域

     1) ES5中作用域只有两个:
     	全局作用域:从声明的位置开始到源程序的结束均有效
     	函数作用域:只在函数范围内有效
     2) ES6中增加的块级作用域:在ES6中使用let关键字声明的变量只在它所在的块级作用域中有效
    
  4. 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()清除间歇定时器
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值