首页 > 编程语言 >NodeJS 基础语法

NodeJS 基础语法

时间:2023-07-20 15:25:18浏览次数:41  
标签:运算符 console log NodeJS 基础 语法 let typeof true

一、NodeJS 基础语法

目录

1.1 安装

  • 下载镜像地址:

    • 阿里云镜像地址: https://npmmirror.com/
    • 开发文档MDN: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
  • 开发工具

1.2 注释

  • 单行注释://
  • 多行注释:/*comment*/
str = 'hello' + /*comment*/ ' world'
console.log(str)

1.3 常量和变量

  • 变量声明
    • var a = 100: 声明一个全局或者函数内局部变量
    • let b = 200: 声明一个局部变量
  • 常量声明
    • const c=300: 常量必须声明的时候赋值,否则会报错,不可修改

变量声明完成以后没有赋值,会赋值为undefined

var a 
console.log(a) // undefined

a = 100
console.log(a) // 100

const b 
console.log(b) // SyntaxError: Missing initializer in const declaration

1.4 数据类型

ES是动态语言,若类型语言,虽然先声明了变量,但是变量可以重置赋值成任意类型。若类型,不需要强制类型转换,会隐式类型转换

  • 隐式类型转换

    • 字符串+其他类型=字符串:
    • 数字+其他类型(除undefined)= 数字
    • undefined + 其他类型(除字符串) = Nan
    • 逻辑运算,返回类型为短路是的类型
    console.log(a = undefined + 'a', typeof(a)) // undefineda string
    console.log(a = null + 8, typeof(a)) // 8 number
    console.log(a = 8 + true, typeof(a)) // 8 number
    console.log(a = undefined + 8, typeof(a)) // NaN number
    console.log(a = null + true, typeof(a)) // 1 number
    console.log(a = undefined + true, typeof(a)) // NaN number
    console.log(a = true && 8, typeof(a)) // 8 number
    console.log(a = true && 'a', typeof(a)) // a string
    

NaN: Not a Number, 转换数字失败

1.5 字符串

使用单引号'或者双引号"引用起来的值就是字符串,ES6支持反引号.通常多行定义使用反引号,且反引号支持插值

a = `line1
    line2
line3`
console.log(a)
输出:
line1
    line2
line3
for (let i=1;i<10;i++) {
    line = ''
    for (let j=1;j<=i;j++) {
        line += `${j}*${i}=${i*j} `
    }
    console.log(line)
}
输出:
1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

1.6 转义字符

image-20230719230057206

1.7 数值

image-20230719230347762

1.8 运算符

  • 算术运算符

  • 单目运算符: i=0;let a = ++i+i+++i+++i 结果为 1+1+2+3=7

    • ++
    • --
  • 比较运算符

    • = =: 宽松相等,进行类型转换
    • = = =:严格相等,不进行类型转换
  • 逻辑运算符

    • &&
    • ||
    • !
  • 位运算符

    • &
    • |
    • ^
    • <<
    • >>
  • 三元运算符 条件表达式?真值:假值

    • ('3'> 30)?'yes':'no'
  • 逗号运算符

  • 其他运算符

    • instanceof: 判断是否属于指定类型,必须明确类型,对象必须是new关键字声明创建的

      console.log('a' instanceof String) // false
      console.log(1 instanceof Number) //false
      
       a = new String('a')
       console.log(a instanceof String) // true
       b = new Number(1)
       console.log(b instanceof Number) // true
      
    • typeof: 返回类型字符串

    • delete: 删除对象或者对象的属性

    • in: 指定的属性是否在对象内,返回bool值

    
    let s = new Array('a', 'b', 'c')
    
    console.log('a' in s) // false
    console.log(0 in s)  // true
    console.log(s[0]) // a
    console.log("length" in s) // true
    
    for (let i=0;i<s.length;i++) {
        console.log(s[i]) 
    }
    // a
    // b
    // c
    delete s[1]
    
    for (let i=0;i<s.length;i++) {
        console.log(s[i]) 
    }
    // a
    // undefined
    // c
    

    1.9 生成器表达式

    ES6开始支持生成器函数,每次调用next()方法返回一个对象,这个对象包含两个属性value, done。

    function *inc() {
        let i = 0;
        let j = 5;
        while(true) {
            yield ++i;
            if(!--j) return 100
        }
    }
    
    let gen = inc()
    for (let i=0;i<7;i++) {
        console.log(a = gen.next(), a.value)
    }
    // { value: 1, done: false } 1
    // { value: 2, done: false } 2
    // { value: 3, done: false } 3
    // { value: 4, done: false } 4
    // { value: 5, done: false } 5
    // { value: 100, done: true } 100
    // { value: undefined, done: true } undefined
    

标签:运算符,console,log,NodeJS,基础,语法,let,typeof,true
From: https://www.cnblogs.com/kntvops/p/17568502.html

相关文章

  • NodeJS 控制语句
    二、控制语句目录二、控制语句2.1语句块2.2流程控制2.2.1条件分支2.2.2switch-case分支语句2.2.3for循环2.2.4while循环2.2.5do-while循环2.2.6for-in循环&for-of2.2.7break&continue2.1语句块JS使用大括号构成语句块,let只能在块作用域内可见functionfn(){......
  • 云原生基础设施实践:NebulaGraph 的 KubeBlocks 集成故事
    像是NebulaGraph这类基础设施上云,通用的方法一般是将线下物理机替换成云端的虚拟资源,依托各大云服务厂商实现“服务上云”。但还有一种选择,就是依托云数据基础设施,将数据库产品变成为云生态的一环,不只是提供自身的数据云服务,还能同其他的数据库一起分析挖掘业务数据价值。在本......
  • 关于vue3使用setup语法糖获取不到组件实例内部的变量
    //子组件<template><div>{{count}}</div><template<scriptsetup>import{ref}from'vue'constcount=ref(0)</script>//父组件<template><div><Childref="child"/>......
  • mysql基础~基础知识问答
    一orc系列1 orc切换模式常用的是主动触发高可用切换(例行维护),被动高可用切换(mysql负载很高,mysql主库down掉) 2orc在以下情况不会发生切换从库发生故障,主从复制异常,从库挂掉,从库出现延时主库hang住,主库出现toomanayconnetions(因为orc建立的长连接,即便连接打满,也不会......
  • NodeJS对象模型
    四、JS对象模型目录四、JS对象模型定义类字面声明方式定义ES6之前-构造器class关键字构建重写方法静态属性静态方法this的坑显示传入-thatES3引入apply、call方法ES5引入bind方法-常用ES6引入支持this的箭头函数-推荐高阶对象、高阶类、或称Mixin模式继承实现高阶对象的实......
  • 计算机系统基础PA1
    在开始愉快的PA之旅之前  不来玩一下吗? 不得不说,要仔细看清楚来,是根据fceux-am/README.md中的内容进行操作这里我们可以拿到一个压缩包咋解压?   解压完后,比如我想要将这个文件夹下的全部文件移动到当前文件夹下,咋办?如将a/b/下的文件全......
  • 【我和openGauss的故事】浅尝 openGauss v5.0.0 的 MySQL 语法兼容性
    【我和openGauss的故事】浅尝openGaussv5.0.0的MySQL语法兼容性严少安2023-07-1418:50发表于openGauss公众号在openGauss中,以下简称og5,提供了一个名为Dolphin的插件,并以此来提供MySQL的兼容性。本文将以openGaussv5.0.0版本为基础,对照PostgreSQLv15.2和Mar......
  • mysql查询用in 报语法错误
    MySQL查询使用IN报语法错误问题解决方法概述在MySQL数据库中,使用关键字IN可以用来在查询中指定多个值,以便于查询多个条件的数据。但是,有时候我们可能会遇到使用IN关键字时报语法错误的问题。本文将向你介绍如何解决这个问题,并提供相应的代码示例。问题描述小白在使用MySQL查询......
  • 6大常用基础算法
    6大常用基础算法1冒泡排序(BubbleSort)基本思想两个数比较大小,比较大的数下沉,比较小的数冒起来。时间复杂度O(n)2代码```inta[]={15,4,3,2,8,0,7};intlength=sizeof(a)/size(a[0]);voidasd(inta[],intlength){inttemp;for(inti=0;i<length-1;i++){......
  • 58.请使用vue3+vite+typescript+element-plus+setup语法糖,使用xlsx和file-saver实现保
    1<template>2<div>3<el-table4:data="mergedTableData"5border6stripe7>8<!--表头-->9<el-table-column10prop="date"11label="......