zoukankan      html  css  js  c++  java
  • NodeJS学习笔记一

    简介:

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。

      Node v4这个版本是Node和iojs合并后发布的首个稳定版本,并且为开发者带来了大量的ES6语言扩展。了解 Node.js中包括的ES6语言扩展。本课将会为你介绍如何使用这些新特性。

      Node.js 4.0.0 可以让您享受最尖端的技术,保持项目的先进性。其中对 v8 的升级几乎做到了与 Chromium / Google Chrome 同步,达到了 4.5.x,它提供了很多新的语言功能。ECMA-262 是 JavaScript 语言规范的最新版本,而且好多新特性数都是开箱即用的。这些新特性包括:

    • classes - 各种 ‘类’,再也无需用 CoffeeScript 的语法糖写类了
    • generators - 未来的.js 代码中将有无数生成器,不学一点就看不懂 JS 代码了哦
    • collections - 集合、映射、弱集合、弱映射
    • arrow functions - 箭向函数
    • block scoping - 使用 let 、const 作用域,块辖域
    • template strings - 模板字串
    • promises - 用标准化了的方法进行延迟和异步计算
    • symbols - 唯一的、不可修改的数据

    let&var的区别:

    'use strict';
    var a = 5;
    var b = 10;
    if (a === 5) {
      let a = 4; // The scope is inside the if-block
      var b = 1; // The scope is inside the function
      console.log(a);  // 4
      console.log(b);  // 1
    } 
    console.log(a); // 5
    console.log(b); // 1
    
    for (let i = 0;i<10;i++) {
      console.log(i);
    }
    console.log(i);
    console.log("let&var的区别=============");
    for (var i = 0;i<10;i++) {
      console.log(i);
    }
    console.log(i);

    运行的结果:

    >   
    > 4
    > 1
    > 5
    > 1
    > 0
    > 1
    > 2
    > 3
    > 4
    > 5
    6
    7
    8
    9
    undefined
    let&var的区别=============
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    const


    const这个声明创建一个常量,可以全局或局部的函数声明。

    一个常量可以是全局的或者是局部的,常量遵循与变量相同的作用域规则。

    一个常量不可以被重新赋值,并且不能被重复声明.所以,虽然可以在声明一个常量的时候不进行初始化,但这样做是没有意义的,因为这个常量的值永远会保持undefined。

    一个常量不能和它所在作用域内的其他变量或函数拥有相同的名称。

    const num = 10;
    num =20;
    console.log(num); // 10
    

      如果我们在上面声明常量num,在声明var num,这时会报错,num已经声明。

    const num = 10;
    var num = 20;
    console.log(num); // 'num' has already been declared
    

      

    块级作用域


      很多语言中都有块级作用域,JavaScript使用var声明变量,以function来划分作用域,大括号“{}” 却限定不了var的作用域。用var声明的变量具有变量提升(declaration hoisting)的效果。

    ES6里增加了一个let,可以在{}, if, for里声明。用法同var,但作用域限定在块级,let声明的变量不存在变量提升。

    'use strict';
    function f1() {
      var a = 1;
      let n = 2;
      if (true) {
          var a = 20;
          let n = 10;
      }
      console.log(n); // 2
      console.log(a); // 20
    }
    f1();
    

      

     

  • 相关阅读:
    leecode练习--804、唯一摩尔斯密码词
    leecode练习--832、翻转图像
    leecode练习--561、数组拆分Ⅰ
    leecode练习--942、增减字符串匹配
    第二十篇 编程语言分类
    《英语学习》记录
    《视频笔记》记录
    《爬虫》爬取可用的免费IP
    《读书笔记》记录
    数据结构与算法之美
  • 原文地址:https://www.cnblogs.com/airycode/p/6364808.html
Copyright © 2011-2022 走看看