javascript(ES6)-语法学习

JavaScript ES6到ES11核心语法全面学习与实战 在配置管理中,使用const可防止意外修改:// 错误尝试// 虽然不会报错,但违反约定// 更安全的做法});// 或整体冻结});使对象浅层不可变,适合用于配置项、枚举、状态常量等。 阅读详情

最近想用nodejs做一个android调试脚本,由于nodejs其实可以理解成javascript的升级版。大学时用过JavaScript,这里还是要再复习下JavaScript的语法.它和C语言很类似,在心里上有一定学习优势,废话少说,开干。

到底行尾加不加分号“;”

关于这个问题,网上众说纷纭。网上说加不加分号会影响性能,毕竟要传输的数据变大了些。但是我看了一些开源仓库,有很多都是用了分号。为此后面的开发,我暂且都会在尾部加分号。

1.定义变量

就目前学习了解到javascript定义变量可以使用**let、var、const.**定义变量的名字需要遵循下面原则。
引用自

  • 名称可包含字母、数字、下划线和美元符号
  • 名称必须以字母开头
  • 名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
  • 名称对大小写敏感(y 和 Y 是不同的变量)
  • 保留字(比如 JavaScript 的关键词)无法用作变量名称
  • let:定义的变量生命周期仅限在let命令所i在的代码块内。如下面的aa为let在大括号内定义的变量,所以aa的可见性就在这个大括号内部。这个很像C语言的局部变量
    {
    	let aa = 55;
    }
    console.log(aa);
    
    执行结果可以看到,没有定义aa.现在aa对外部不可见。如果把let换成var,就不会报错了。
    K:\nodejs_demo\variable.js:4
    console.log(aa);
                ^
    
    ReferenceError: aa is not defined
        at Object.<anonymous> (K:\nodejs_demo\variable.js:4:13)
        at Module._compile (internal/modules/cjs/loader.js:1063:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
        at Module.load (internal/modules/cjs/loader.js:928:32)
        at Function.Module._load (internal/modules/cjs/loader.js:769:14)
        at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
        at internal/main/run_main_module.js:17:47
    
  • var:定义的变量在整个文件都是可见的。所以在后续开发中,建议都使用let定义变量
    {
       var aa = 55;
    }
    console.log(aa);
    输出:
    λ node variable.js
    55
    
  • const:定义静态变量,后续不能修改的类型。如下面例子定义了静态便能量aa=4;但是后面又把它改成了33.这在编译就会报错。
    const aa = 4;
    aa = 33;
    console.log(aa);
    
    #进行编译
    aa = 33;
       ^
    
    TypeError: Assignment to constant variable.
        at Object.<anonymous> (K:\nodejs_demo\variable.js:2:4)
        at Module._compile (internal/modules/cjs/loader.js:1063:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
        at Module.load (internal/modules/cjs/loader.js:928:32)
        at Function.Module._load (internal/modules/cjs/loader.js:769:14)
        at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
        at internal/main/run_main_module.js:17:47
    

2.如何注释

像c语言一样可以使用
  1. /**/
  2. //

3.运算符

这里很多都是和C语言的类似

  • 加减乘除
let a = 3;
let b = 6;
let sum = a + b;
let sub = b - a;
let mul = a * b;
let div = b/a;

console.log("sum=%d,sub=%d,mul=%d,div=%d,++a=%d,b++=%d,b=%d",
        sum,sub,mul,div,++a,b++,b);

结果:

λ node add.js
sum=9,sub=3,mul=18,div=2,++a=4,b++=6,b=7

  • 个等号 == 和 三个等号 === 的区别
    更详细的可参考连接:
    ‘==’:等同 的意思, 两边值类型不同的时候,要先进行类型转换为同一类型后,再比较值是否相等
    ‘===’:表示只要值相等即可为真,而"==="则要求不仅值相等,而且也要求类型相同
if (a == 8)
        console.log("this is %d",a);
if (b == 8)
        console.log("b is %d",b);
if (b === 8)
        console.log("2b is %d",b);

运行结果:

this is 8
b is 8

由于在实际开发过程中一般都是像比较2边的类型和值都一样,所以一般都是用===吧

  • 位运算
    下表引用自:https://www.w3school.com.cn/js/js_bitwise.asp
运算符名称描述
&AND如果两位都是 1 则设置每位为 1
|OR如果两位之一为 1 则设置每位为 1
^XOR如果两位只有一位为 1 则设置每位为 1
~NOT反转所有位
<<零填充左位移通过从右推入零向左位移,并使最左边的位脱落。
>>有符号右位移通过从左推入最左位的拷贝来向右位移,并使最右边的位脱落。
>>>零填充右位移通过从左推入零来向右位移,并使最右边的位脱落。

例子;

let a = 254;
console.log('a>>1=%d,a<<1=%d,a>>>1=%d',a>>1,a<<1,a>>>1);

运行结果:

a>>1=127,a<<1=508,a>>>1=127

4.字符串操作

let name = "armiwnd";
let data = " is a good boy"
let zuhe = name + data;

console.log("len=%d", name.length);
console.log("data:%s",name + data);
console.log(name + data);
console.log(zuhe.indexOf("good"));
console.log(zuhe.search("good"));

运行结果:

len=7
data:armiwnd is a good boy
armiwnd is a good boy
13
13

这里可以看到字符串可以直接拼接的,在实际应用中记住这一点很重要好。同时还有字符串查找方法,

  • indexOf:能够查找到字符的偏移地址
  • search:同样能返回偏移地址,但search支持正则表达式查找

4.循环语句

这里的循环语句可以说和C语言基本一致,按着C语言的方式来编码基本没有问题。下面是写的 for,for in,while,do while循环的例子。
同样可以在循环过程中使用break提前跳出循环。

let stu_name = ["armwind1","armwind2","armwnid3"];

//i是元素的索引
for (i = 0; i < stu_name.length; i++) {
        console.log("for: name is %s",stu_name[i]);
}

//x是元素的索引
for (x in stu_name) {
        console.log("for in:name is %s",stu_name[x]);
}

i = 0;
while(i < stu_name.length) {
        console.log("while:name is %s",stu_name[i++]);
        if (i === 2)
                break;
}

i = 0;
do {
        console.log("do_while:name is %s",stu_name[i++]);
} while(i < stu_name.length);

运行结果:

for: name is armwind1
for: name is armwind2
for: name is armwnid3
for in:name is armwind1
for in:name is armwind2
for in:name is armwnid3
while:name is armwind1
while:name is armwind2
do_while:name is armwind1
do_while:name is armwind2
do_while:name is armwnid3

5 swith case

同样和C语言的语法基本无差别,

let stu_name = ["armwind1","armwind2","boy"];

for (i in stu_name) {
    switch(stu_name[i]) {
        case "armwind":  console.log("I'm armwind");break;
        case "armwind1": console.log("I'm armwind1");break;
        case "armwind2": console.log("I'm armwind2");break;
        case "armwind3": console.log("I'm armwind3");break;
        default: console.log("error variable");break;
    }
}

运行结果:

I’m armwind1
I’m armwind2
error variable

手把手教你用Cadence仿真12bit SAR ADC:从电路图到FFT频谱分析(含Simc 18mmrf工艺文件) 本文详细介绍了使用Cadence仿真12bit SAR ADC的全流程,包括电路搭建、仿真环境配置、瞬态仿真优化及FFT频谱分析。基于Simc 18mmrf工艺文件,提供从电路图到性能验证的实战指南,特别分享工程实践中的排错技巧和优化策略,帮助工程师高效完成ADC设计验证。 阅读详情

相关推荐

python爬取巨潮资讯网所有股票年报数据

爬虫获取巨潮资讯网数据

qq_42752524的博客 6114

学习ES6(一)--基础语法(js)

JavaScript程序可以由- 变量-表示可以存储程序值的命名存储块。 文字-表示恒定/固定值。 运算符-定义如何处理操作数的符号。 关键字-在语言环境中具有特殊含义的单词。 下表列出了JavaScript中的一些关键字。 break as any Switch case if throw Else v...

qq_34975445的博客 423

Claude Code 完整学习笔记

Claude Code 学习笔记摘要 Claude Code是Anthropic推出的智能编码工具,基于Claude Opus 4.5模型构建,提供跨平台支持(终端/VS Code/JetBrains/Web等)。核心功能包括: 代码库理解与多文件编辑 命令执行与开发工具集成 智能体协作开发流程 安装要求Node.js≥18,提供原生/Homebrew/npm等多种安装方式,支持环境变量配置API访问。基础交互模式包括会话管理、文件操作和代码审查等功能,可自动读写文件并执行精确修改。 (149字)

虚心若愚 812

ES6语法总结

新的声明方式 全局声明:var 局部声明:let const 优点:减少环境污染 区别: 1. var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。 2.let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。 3.const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。 变量的解构赋值 数组的解构赋值 letl [a,b,c]=...

qq_45545662的博客 455

利用VBA宏实现LightTools仿真数据自动化导出至Excel

本文详细介绍了如何利用VBA宏实现LightTools仿真数据自动化导出至Excel的完整流程。通过调用LTAPI接口,工程师可以自动执行仿真、抓取照度与光强等数值数据、捕获并粘贴仿真图像,从而将重复性工作自动化,显著提升光学设计工作的效率和准确性。

weixin_28314575的博客 500

VS2022离线安装总闪退?可能是这个--noWeb参数没加对(完整参数指南)

本文深入解析了VS2022离线安装过程中常见的闪退问题,指出核心原因往往在于命令行参数使用不当,特别是`--noWeb`参数。文章提供了完整的参数使用指南和实战解决方案,包括证书处理、安装器文件修复及自动化脚本,帮助用户彻底解决离线部署中的验证失败与闪退难题。

weixin_28842269的博客 758

ES6 数组解构时不加分号引发的问题

这样就引发了直接打印 [value1_1, value1_2, value1_3] 的结果不等于 myhandle(1, 2) 的返回值。上面这行代码并不会报错,并且会将末尾的 [4, 5, 6] 赋值给 [value1_1, value1_2, value1_3]写 js 代码一定要注意行尾分号问题,如果用的语句组合比较复杂,那么最好在行尾加上分号增强代码可读性。我和朋友讨论是要看你的项目有没有配置了 js 代码压缩,如果配置了压缩代码,那么说明你的项目代码最终。但是如果单纯写 js 代码。

殇尘的博客 809

IEC104协议下的文件传输与软件升级的技术细节与操作流程

本文深入探讨IEC104协议下的文件传输过程和软件升级机制,揭示其背后的技术细节和操作流程。

2401_86189088的博客 2525

javascript-es6(三)

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。1. 赋值运算符 = 左侧的 [] 用于批量声明变量,右侧数组的单元值将被赋值给左侧的变量。1. 赋值运算符 = 左侧的 {} 用于批量声明变量,右侧对象的属性值将被赋值给左侧的变量。变量的数量大于单元值数量时,多余的变量将被赋值为 undefined。解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值。2. 变量的顺序对应数组单元值的位置依次进行赋值操作。参数当前数组元素是必须要写的, 索引号可选。

2301_80115241的博客 656

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6618

风控IV、AUC、KS python计算代码

df_temp:数据集,Y:是否逾期标签,feas_list:需要计算IV的 变量。2、 按月和不同Y 下的 IV计算。

暮雨听轩的专栏 1618

JavaScript语句到底要不要分号?

在学习vue后完成了实训项目(培训中心网站),开始学习React,学习过程中发现在React的constructor钩子函数里, 每写一个语句都用分号结尾,这让我在习惯vue后产生了疑问,到底JS需不需要分号结尾。于是乎上百度。 在C语言中,分号是语句结束的标志,在语句结束的地方一定要以分号结束。而 JavaScript 的分号却是可选的,若语句都各占一行,则可以省略分号。 ASI 机制(A...

renqu4n的博客 5491

《唤醒你的AI同事:WorkBuddy从零上手》004:与其他 AI 工具的对比

把 WorkBuddy 与聊天机器人、办公套件内置 AI、自动化工具逐维对比,并按当前版本补充四项新差距:结果交付、连接器广度、资料库与多模态产出。

LuckyHanMo的博客 671

JavaScript的ES6语法学习总结

文章目录letconstlet const var的区别解构赋值数组解构对象解构箭头函数 let 使用let关键字声明的变量具有块级作用域。var关键字不具备这个特点。 if (1) { var a = 100; let b = 200; } console.log(a);// 100 console.log(b);// error: b is not defined 使用let关键字可以防止循环变量变成全局变量 for (var i = 0; i < 3; i++) { } conso

Night_X的博客 784

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JavaScript ES6语法学习笔记 02、ES6语法扩展

文章目录前言一、剩余参数(多参=>数组,也有对象情况在对象解构赋值中)1.1、认识与使用剩余参数1.2、箭头函数中使用剩余参数(代替arguments)1.3、注意事项(3个)二、展开运算符(数组=>多参,也有对象情况)2.1、认识展开运算符2.2、针对数组(4个实用案例)2.3、针对对象(语法与合并案例)三、Set对象3.1、Set的基本方法与使用(四个属性、一个方法)3.2、Set构造函数的参数3.3、注意事项(2个)3.4、实际应用(3个小示例)四、Map对象4.1、Map与对象的区别?4

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 739

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JavaScript的ES6语法】7、ES6语法学习之Promise

Promise的中文含义翻译过来就是“承诺、许诺”的意思,它是ECMAscript 6 原生提供的一个对象,那么它在ES6中起到什么作用呢? 在这之前,我们先说一下程序的“异步”和“同步”。所有的程序语言中都存在的两种状态,其中“异步”指的就是操作之间没有关系,可以同时进行多个操作;而“同步”的操作之间是强关联的,只能同时做一件事。 例如我们编写前端代码常用的ajax异步调用,有一些数据不随着页面加载而生成,而是同时去获取,避免同步调用时,因为调用数据的不及时导致页面卡死。 “异步”操作同时也存在缺点,

程序猿之洞 555

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

javascript的ES6详解及语法学习

本文提供了一些简单的示例来说明ES6的各种语法和特性,并提供了相应的源码分析,希望能够帮助读者更好地理解和应用ES6的新特性。ES6(ECMAScript 6)是JavaScript的一种更新版本,引入了许多新的语法和特性,为开发者提供了更好的编程体验和更强大的功能。箭头函数是通过 “=>” 符号来声明的,它可以理解为一个匿名函数,并且可以使用更简洁的语法来定义函数的参数和函数体。它的本质是一个闭包,内部的this是根据外部的词法作用域来确定的,而不是根据调用时的上下文。

hitpter的专栏 363

JavaScript ES6语法学习笔记 01、ES6语法基础

文章目录前言一、认识ES6二、认识let与const2.1、初识let与const2.2、let、const与var的区别(5点)2.3、let、const应用引出var变量问题(使用在局部作用域中)解决方案1(ES6解决方案):使用闭包解决方案2:使用let、const来定义变量三、模板字符串(``)3.1、认识模板字符串与基本使用3.2、注意事项(输出多行字符串、特殊字符、注入哪些内容)3.3、实际应用(将标签与对象值进行配合进行注入)四、箭头函数(简化函数写法)4.1、认识箭头函数4.2、箭头函数的简

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 882

node.js对es6语法学习

1、es6模板字符串的使用(模板语法) 2、es6对象简化语法 3、ES6其他注意事项 4、ES6中函数形参的默认值 5、解构赋值指定参数的默认值:简化代码 6、扩展运算符(三点运算符即有合并又存在拆解的作用)...

qq_64970126的博客 1220

javascript的ES6详解及语法学习_es6 javascript

练习:请创建一个名为"utils.js"的模块,其中包含一个名为"capitalize"的函数,该函数将字符串的首字母转为大写并返回结果。箭头函数是通过 “=>” 符号来声明的,它可以理解为一个匿名函数,并且可以使用更简洁的语法来定义函数的参数和函数体。它的本质是一个闭包,内部的this是根据外部的词法作用域来确定的,而不是根据调用时的上下文。解构赋值的本质是通过模式匹配来提取数据,并将数据赋值给对应的变量。它可以通过数组和对象的结构来进行数据的解构,并且可以使用默认值来处理解构失败的情况。

2401_86962969的博客 734

JavaScript---es6语法---学习笔记

es6 语法: 文章目录es6 语法:编译、转换1.在线转换2.提前编译3.主要内容1.变量2.函数3.数组4.字符串5.面向对象6.Promise7.generator8.模块化9.剩余参数(可变参数 )10.拓展运算符 [...element]11 对象字面量的拓展 兼容性 ie10+ chrome firefox 移动端 NodeJS 编译、转换 1.在线转换 2.提前编译 babel ==...

pannubi的博客 435

JavaScript前端学习路线:从基础语法到DOM、ES6、jQuery与ECharts

JavaScript 是前端开发的核心语言,掌握变量、函数、对象等基础语法后,还需要理解 DOM 与 BOM 的交互原理,才能让页面真正具备动态能力。ES6 新语法中的模板字符串、解构赋值和深拷贝等特性,是进入现代框架世界的必经之路。在实际工程中,jQuery 凭借简洁的 DOM 操作和 Ajax 封装,在大量项目中仍然发挥着作用;而 ECharts 则通过配置项即可快速生成饼图、中国地图等可视化图表,适合快速产出可见成果。从基础语法到数据可视化,一条体系化的学习路线能够帮助初学者避开 DOM 型 XSS、

weixin_28704239的博客 263

Javascript学习总结 - es6新增的语法

Javascript学习总结 - es6新增的语法 变量 es6新增了来个关键字 let const let定义变量: 1.不能重复定义; 2.没有预解析,不能提升; 3.let会创建一个块级作用域,只在定义变量的大括号中有效; 4.不在window对象中; const定义变量: 1.const是定义常量的; 2.不能重复赋值; 3.没有预解析,不能提升; 4.会有自己...

Cobra_boy的博客 418

【JavaScript的ES6语法】1、认识和学习ECMAScript

一、什么是ECMAScript 在Web1.0时代,网页以HTML为主,是只读的,开发人员只需关心页面的样式和内容。 在Web2.0时代,网景公司设计了javaScript语言,同时微软也发布了jScript(javaScript的逆向工程实现)。Script语言的出现,使网页除了展示HTML静态内容外,还可以展示一些动态内容,实现一些动态效果。 由于出现了不同的Script脚本语言,语法标准各不一样,1997年,ECMA(欧洲计算机制造商协会)以javaScript为基础,制定了ECMAScript标准

程序猿之洞 725

JavaScript ES6语法学习笔记 03、ES6新增方法

文章目录前言一、字符串新增方法1.1、includes():判断是否含有元素1.2、padStart()和padEnd():填充起始值或后位值1.3、trimStart()和trimEnd():切除空字符串二、数组新增方法2.1、includes():判断数组中是否有某个成员2.2、Arrary.from():其他类型转数组2.3、find()与findIndex():查找指定元素值或索引三、Object对象方法(构造器方法)3.1、Object.assign():合并对象3.2、Object对象的keys

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 830

ES6是什么?通俗理解

1.了解一门语言,首先要搞明白它到底是什么? ECMA (Eurupean Compuler Manuluclurers Assuxiation)中文名为欧洲计算机制造商协会,这个组织的日常是评估、开发和认可电信和计算机标准。19919 年后该组织改名为ECMA国际。 ES6是门脚本语言,从名字(ECMAScript6)中我们可以看出,他是JS的组成部分,直白点说,它规定了我们怎样写JS。 举个例子: 我们为什么不能有JAVA中的i...

tiao_tiao_hu的博客 5974
上一篇: CanOpen协议栈学习笔记2-EMCY、guard&Heartbeat
下一篇: Vue 中 this.$router 与 this.$route 的区别 以及 push() 方法
armwind
博客等级 码龄12年 406粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值