码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Node.js的概念、特点、控制台常用指令


    目录

    一、node.js的概念

    二、node的特点

    三、面试题/笔试题:

    1、node.js是单线程还是多线程,为何是单/多线程?

    2、为何是单线程,还能是非阻塞?

    四、目前node.js它的地位?

    五、控制台常用指令


     

    不同语言运行在不同的系统/环境/软件中:

    c/c++ ==>运行在  windows  linux

    swift object-c ==>运行在   iOS

    java ==>运行在  安卓

    html/css/js ==>运行在  浏览器

    javascript ==>运行在  node.js

    一、node.js的概念

    Node.js  is a JavaScript runtime built on Chrome's V8 JavaScript engine.

    Node.js是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时环境,使用单线程的基于事件驱动的非阻塞I/O模型,它拥有全世界最大的开源库生态系统npm.

    那么JS在哪里运行?

    浏览器: ECAMS==>ES5 ES6 ES7... array object function date DOM BOM 操作页面

    node: 不能操作页面 没有DOM和BOM ECMA 服务器相关操作的API 文件操作 数据库的连接 http服务:提供接口

    ==> node.js是一个软件,它是js的代码运行环境,可以运行js代码然后实现服务器的功能

    二、node的特点

    1、模块化

    node.js的开发是模块化开发的思想 具有一些相同功能的代码 集成为一个模块 模块主要是由:node系统自带的模块 第三方模块和自定义模块组成 第三方模块几乎都是由npm来管理 ==>npm是一个集成了当前世界上最多开源库的生态系统

    (把功能按照模块来封装,方便扩展,维护管理,更有利于开发大型项目)

    npm社区nodejs的模块化社区,是全世界最大的模块市场,后被微软收购

    2、事件驱动

    回调函数是事件驱动的具体实现

    把任务添加到事件池(event-loop),让异步任务去子线程中执行  然后注册一个事件  任务执行完毕以后 就回到主线程执行回调函数

    3、非阻塞I/O操作模型

    底层c/c++是多线程 为上层js提供异步编程接口,实现CPU多核处理的优势

    I/O 是耗时操作

    非阻塞:让计算机的多核发挥功能 同时执行任务

    4、单线程

    node的上层js业务代码是单线程语言

    三、面试题/笔试题:

    1、node.js是单线程还是多线程,为何是单/多线程?

    答:

    1) 单线程

    2) 原因:因为node.js的主线程 是程序员写的这个线程 这个线程的代码是v8在运行 js代码,它提供的异步函数是底层c/c++在开启线程执行任务

    2、为何是单线程,还能是非阻塞?

    答:

    1) 因为node.js的主线程 是程序员写的这个线程 这个线程的代码是v8在运行 js代码,它提供的异步函数是底层c/c++在开启线程执行任务。

    2) 我们写的代码是js代码,是单线程。但是有一些异步函数是nodejs底层在开线程运行。

    四、目前node.js它的地位?

    node是一个开源的免费的环境,性能好速度快 资源占用小,它不安全

    五、控制台常用指令

    在某个文件夹下路径上输入cmd,就会在当前的路径下运行cmd.exe

    node xxx.js文件 //用node环境去运行js文件

    cls //清除控制台屏幕上的打印信息

    ctrl+c //停止程序运行

    上下键//输入过的指令历史

  • 相关阅读:
    CKAN教程之将 Snowflake 连接到 CKAN 以发布到开放数据门户
    ABAP BAPI_ACC_DOCUMENT_POST 中 EXTENSION1的用法
    SAKO搜索帮助增强(FB02科目搜索帮助)
    注册大量短视频矩阵账号很简单,这个方法教会你,还有这个批量剪辑神器帮你完成矩阵分发
    python计算机毕业设计基于django的空闲教室爬虫系统
    【golang】多个defer的执行顺序以及器相关练习
    Java从零学起(七)----面向对象(中)
    SSM框架-MyBatis基础
    Java.lang.Class类 getMethods()方法有什么功能呢?
    线程交互现象
  • 原文地址:https://blog.csdn.net/qq_52301431/article/details/126013209
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号