JavaScript 和 Node概述(一)

Node学习笔记(一)

  • js语法
  • node的网络编程和HTTP协议
  • 了解和学习MEAN框架全栈开发
    • MongoDB数据库,Express,Angular框架,Node
  • 推荐了一些书,见飞书群。

什么是JavaScript

JavaScript特性

  • 脚本化的语言,依赖宿主,嵌入在应用程序环境,去调用主环境提供的底层API,可以解释执行也可以编译执行。
  • 动态,对象被创建后依然可以自由添加或删除对象属性
  • 弱类型
  • 函数优先,函数的对象化,函数是第一元素,有闭包,也可以进行函数式编程
  • 基于原型的面向对象
  • 真正的一次编写处处运行,https://jsconsole.com

为什么叫Node

  • 计划设计一个高性能web服务器
  • 变成一个快速构建可伸缩的网络应用平台基础架构
  • 每个Node应用都是大型网络的一个节点(基于Node的微服务)

Node底层是V8引擎

V8在执行的时候将js源代码编译为机器码

  • 将js抽象为语法树
  • 将语法树作为JIT编译器的输入并并输出中间代码
  • 最后输出可执行的每个后端平台的对应的应用

Why Node

EveryTime

JS和Node关联

MEAN栈

DataBase:MongoDB

Application server:Node

front-end:VUE / angular / react

开发环境:

语法:https://developer.mozilla.org/en-US/docs/Web/javaScript

标准:https://www.ecma-international.org/publications/standars/Standard.htm

REPL命令行环境

R(read) E(evaluate) P(print) L(loop)

Node管理工具:npm

npm是一个开源宝库,每一个小程序都有文档,示例

npm官网:https://www.npmjs.com

npm淘宝镜像:http://npm.taobao.org

基本命令:

#	全局安装
$ npm install XXX -g

Git版本控制

Assert(断言)

function square(number) {
    return number * number;
}
var assert = require('assert');
var actual = square(2);
var expected = 4;
//assert(actual, 'square() should have returned a value');
assert.strictEqual(
    actual,
    expected,
    'square() did not calculate the correct value'
);

以上代码运行是没有反馈的,因为运行正确;

将其数据修改,运行会报错。

console.time
curl

JS基本语法

字面量

C++对字面量的预留空间,访问非常快。

JS不同,他的字面里非常慢,因为他是文本执行,是有引擎解析生成的,不是存放在空间里的,同样的字面里再次遇见还需要再次解读,所以字面里不如直接赋值。

变量

代表内存的一个区域,两个步骤:声明和赋值。

  • 变量的声明:

    • 有字母数字下划线组成,不以数字开头,大小写敏感,不能是保留字
    • 可以使用未声明的变量
    • var和function两种声明语法
    • 后来ES6增加了let、const之类的语法
    • 注意:
      • 未声明的变量在块级区域赋值会保存在全局对象中
      • var在块级区域声明的变量是全局的,会导致循环变量泄漏为全局变量
      • let在块级区域声明的变量只在块级区域有效
      • const声明一些只读常量,不能只声明不赋值,如果在块区域声明一个常量,块区以外不会被访问。
  • 变量的赋值:

    • 不声明直接赋值:使其直接称为全局变量

    • 可以不考虑类型进行赋值(不推荐)

//	未声明的变量之间进行赋值,那么就在global下面声明了一个i,这样就会导致i泄漏
for(i=0;i<3;i++){
  console.log(i);
}
console.log("循环体之外,未声明变量i:"+i);
console.log("全局对象中i:"+global.i);

//	两次输出的结果i都是3,因为在块级区域
//	经常使用未声明就会导致global不堪重负,global是一个公共空间,导致程序运行速度下降,并且这个global下的全局变量并不会自动回收
//	修改之后,global就不会保存j做为全局变量
for(var j=0;j<3;j++){
  console.log(j)
}
//	j会存在local区域对象下,local存储的是当前运行的代码,是文件区,local是可以被访问到的,
//	j有可能会被循环意外的代码修改
//	输出global.j 会显示undefine
//	
for(let k = 0;k<3;k++){
	console.log(k)
}

//	输出global.k会直接报错,
//	因为k既不在global区,也不在local文件区,他仅在块区有效

//	所以推荐使用let进行声明

表达式和语句

表达式:表示一个值

语句:

赋值语句:

声明:

条件语句if

条件表达式?: 三目运算符

条件语句switch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值