2.es6的语法

AUTOSAR开发实战:NvM模块如何解决汽车电子中的EEPROM与Flash存储难题? 本文深入探讨了AUTOSAR中的NvM模块如何有效解决汽车电子系统中EEPROM与Flash存储的难题。通过分层架构设计,NvM模块实现了硬件抽象与统一管理,支持数据一致性检查、错误恢复等高级功能,显著提升了存储可靠性和耐久性。文章结合实战案例,详细解析了NvM的核心机制及工程优化方案,为汽车电子开发者提供宝贵参考。 阅读详情

2.let和const:

2.1.let:声明变量,块就是{}之间的代码,作用域只在当前代码块之间,let的用法和var相同,不过let声明的变量不会被提升

2.2.const:声明常量,在声明常量的时候必须同时进行初始化(给这个常量附一个值),如果 使用const声明对象,对象本身的绑定不能修改,但是对象的属性和值是可以修改的(比如一个person对象,声明了name和age属性,我们可以修改name和age属性的值)

 

3.模板字面量(多行字符串和字符串占位符):

3.1.多行字符串,现在多行字符串我们可以使用``来凭借了,如果字符串中途有换行等操作只需要直接换行输入即可,不会像在 "" 中还需要进行/n等的转义字符来进行操作了

3.2.字符串占位符,占位符由 ${} 来组成,在其中我们可以写入变量或者js的表达式等,如

let price = 86.5
let amount = 5
let toal = `价格等于:${price * amount }}`
或
let name = "张三"
let message = `他的名字是${ name }}`
其中还可以嵌套
let names = "张四"
let messages = `你好,${ 
 `我的名字叫做${ name }}`
 }}`

4.默认参数:

function makeRedirect(url,name){
    url  = url || "/login";
    timeout = timeout || 20000;
}
这样就赋值了默认参数,但是有一个问题,比如timeout传输过来的值为0
(我们让它传输过来的),
它还是会选择20000传输回去,所以我们需要改成一下的方法再使用
function makeRedirect(url,name){
    url = (typeof url !="undefined") ? url :"/login";
    timeout = (typeof timeout != "undefined") ? timeout :20000;
}
es6中写法是
function makeRedirect(url="/login",timeout=20000){
    函数其他操作
}

5.展开运算符:

语法:调用的函数名称(...数组名称)
function add(a,b,c){
    return a+b+c
}
let arr = [1,2,3]
sum(...arr);
展开运算符(...)提取数组arr中的各个值并传入sum函数中
展开运算符可以用来复制数组
展开运算符可以用来合并数组
展开运算符可以取出对象的所有可遍历属性,复制到当前对象中

6.对象字面量语法扩展

之前的写法是
function person(name,age){
    return {
        name:name,
        age:age
    }
}
let name = "张三"
let age = 18
var person = {name:name,age,age}
现在的写法是
function person(name,age){
    return {
        name,
        age
    }
}
同名可以只写属性名即可
let name = "张三"
let age = 18
var person = {name,age}

7.对象方法的简写语法:

原来写法:
var car = {
    color:"red",
    showColor:function(){
        console.log(this.color)
    }
}
现在语法(function可以被省略)
var car = {
    color:"red",
    showColor(){
        console.log(this.color)
    }
}

8.对象解构赋值
let book ={
    title:"vue.js从入门到实战",
    isbn:"123456",
    price:98
}
let {title,price} = book;
console.log(title)
console.log(price)
//原本的写法为
let title = book.title
console.log(title)

如果变量之前已经声明了,之后想用解构语法给变量赋值,
那么需要用圆括号包裹整个解构赋值的语句
let title ="测试"
let price = 100
({titile,price} = book;)
解构语法还可以赋默认值
let {title,price,savetest = 0} = book;
console.log(savetest) //0


9.数组解构:
let arr = [1,2,3]
let [a,b,c] = arr;
在数组解构中,变量值是根据数组中元素的顺序进行选取的,
如果要获取指定位置的数组元素值,可以只为该位置的元素提供变量名,如下:
比如只想获取数组中的第三个位置的元素值
let [,,c] = arr;
console.log(c)
数组解构也可以赋默认值,以及嵌套数组解构


10.箭头函数:
let welcome = msg => msg
相当于:
function welcome(msg){
    return msg;
}

如果函数有不止一个参数,则需要在参数两侧添加一对圆括号。
let welcome = (user,msg) => `${user},${msg}`
相当于:
function welcome(user,msg){
    return user+""+msg;
}

如果函数没有参数,则需要使用一对空的圆括号
let welcome = () => "welcome you";
相当于:
function welcome(){
    return "welcome you";
}

如果函数体有多条语句,则需要用花括号包裹函数体。
let add = (a,b) =>{
    let c = a+b;
    return c;
}
相当于:
function add(a,b){
    let c = a+b
    return c;
}

如果是一个空函数,则需要写一堆没有内容的圆括号代表参数部分,
一对没有内容的花括号代表空的函数体。
let emptyFunction = () =>{};
相当于:
function emptyFunction(){}

如果箭头函数的返回值是一个对象字面量(也就是一个对象),则需要将该字面量包裹在圆括号中
let createCar = () =>({color:color,doors:doors})
相当于:
function createCar(color,doors){
    return {
        color:color,
        doors:doors
    }
}
console.log(createCar("black",4));//{color:"black",doors:4}
将对象字面量包裹在圆括号中是为了将其与函数体区分开来。
箭头函数可以和对象解构结合起来使用。
let personInfo = ({name,age}) =>`${name}'s age is ${age} years old.`
相当于:
function personInfo({name,age}){
    return `${name}'s age is ${age} years old.`
}


11.模块(导入、导出):
导出:
1.一个模块通常是一个独立的js文件,
该文件内部定义的变量和函数除非被导出,否则不能被外部所访问
2.使用export关键字放置在需要暴露给其他模块使用的变量,函数或者类声明前面,
以将它们从模块中导出

导出数据
export var color="red";

导出函数
export function sum(a,b){
return a+b;
} 

导出类
export class Car{
    constructor(sColor,iDoors){
        this.color = sColor;
        this.doors = iDoors
    }
    showColor(){
        console.log(this.color)
    }
}

将在模块末尾进行导出 
function subtract(a,b){
    return a-b;
}
导出subtract函数
export { subtract };

导出subtract函数,并且重命名使用(外部使用时就是sub)
export {subtract as sub }

导出模块默认值(一个模块可以导出且只能导出一个默认值,默认值是通过使用default关键字
指定的单个函数、变量、或者类。非默认值的导出,需要使用一对花括号包裹名称,
而默认导出值的导出则不需要)
export default XXX;


导入:
导入是通过使用import关键字,import语句由两部分组成:
要导入的标识符和标识符应当从哪个模块导入
需要注意点:
1.导入模块时,模块文件的位置可以使用相对路径和绝对路径,使用相对路径时,对于同一
目录下的文件,不能使用modules.js来引入,而是要使用./modules.js,即通过"."
来表示当前目录
2.可以导入整个模块作为一个单一对象,然后所有的导出将作为该对象的属性使用
3.多个import语句引用同一个模块,该模块也只执行一次。将导入的模块代码执行后,
实例化后的模块被保存在内存中,只要另一个import语句引用它就可以重复的使用它

如:假设刚才导出的是modules.js模块
现在导入就应该是:
//导入模块默认值
import divide from "./modules.js"
//导入多个绑定
import {color,sum} from "./modules.js"
//导入单个绑定
import {subtract } from "./modules.js"
//刚才的重命名导出(因为在导出时将函数进行了重命名导出,
//所以这里我们导入时也要使用该名称)
import {sub } from "./modules.js"
//导入时重命名导入的函数
import { sum as add } from "./modules.js"
//导入类
import {Car} from "./modules.js"
//导入整个模块
import * as example from "./modules.js"

//使用导入类的属性
console.log(color); //red
//使用导入类的函数
console.log(add(2,6));
//使用导入模块的函数(这里使用就必须是sum了,而不能是add)
console.log(example.sum(6,6));
//使用导入对象,并使用导出对象的方法
Car car = new Car("black",4);
car.showColor();


12.promise:
promise可以通过promise构造函数来创建,这个构造函数只能接受一个参数:
包含初始化promise代码的执行器(executor)函数,在该函数内包含需要异步执行的代码。
执行器函数接受两个参数,分别是resolve,reject函数,这两个函数由javaScript引擎
提供,不需要我们自己编写。异步操作结束成功时调用resolve函数,失败时调用reject函数

注意点:
1.生命周期:
每个promise都会经历一个短暂的生命周期,先是处于进行中(pending)的状态,此时操作
尚未完成,所以它也是未处理的(unsettled),一旦异步操作执行结束,promise则变为已处理
的(settled)状态。操作结束后,根据异步操作执行成功与否会进入以下两个状态之一:
1.1.fulfilled:promise异步操作成功完成
1.2.rejected:由于程序错误或者其他一些原因,promise异步操作执行未能成功,即失败。
一旦promise状态改变后,我们通过promise对象的then()方法,它接受两个参数:
第一个参数是当promise的状态变为fulfilled时要调用的函数,与异步操作相关的附加
数据通过调用resolve函数传递给这个完成函数;第二个是当promise的状态变为rejected时
要调用的函数,所有与失败相关的附加数据通过reject函数传递给这个拒绝函数。
2.promise链式调用时,有一个重要的特性就是可以给后续的promise传递数据,
只需要在完成处理函数中指定一个返回值,就可以沿着primise链继续传递数据


const promise = new promise{function(resolve,reject){
//开启异步操作
setTimeout(()={
try{
    let c = 6/2;
//成功调用resolve函数
resolve(c);
}catch(ex){
//失败调用reject函数
reject(ex);    
}
},1000);
}};
//成功后回调
promise.then(function(value){
console.log(value);//3
},function(err){
//拒绝
console.error(err.message);
});
//then()方法两个参数都是可选的,例如,只在执行失败后处理,
可以给then()方法的第一个参数传递null。
promise.then(null,function(err){
  console.error(err.message);
});
promise对象还有一个catch()方法,用于执行失败后进行处理,等价于上述只给then()方法
传入拒绝处理函数的代码
promise.catch(function(err){
console.error(err.message);
});

//正常使用
promise.then(function(value){
    //成功
console.log(value);
}).catch(function(err){
   //失败
   console.error(err.message);
})

promise还可以和箭头函数配合使用(未来基本这样使用或者是这种的变式)
const  promise = new promise((resolve,reject)=>{
 setTimeout(()=>{
 let intArray = new Array(20);
 for(let i = 0; i<20; i++){
     intArray[i] = parseInt(Math.random()*20,10)
 }
  resolve(intArray);
  reject(err);
 },2000);
 console.log("开始生成一个随机数的数组")
});
//promise的链式调用
promise.then(value=>{
value.sort((a,b)=>a-b);
return value;
}).then(value=>console.log(value)).catch(err => console.log(err.message));
//promise中间可以嵌套promise,一般用于用上一个请求返回过来的
//数据当做下一个数据请求的参数

 

AUTOSAR-SOMEIP配置总结 导入arxml之后someip信号一般以“pduSomeIp”开头或者“SomeIp”开头。以某个pdu为例,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。在导入arxml之后someip信号中有三个特殊的信号,形如“SdInstance”开头的信号,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。“EcuC”模块主要关注“EcucPduCollection”中的“Pdus”下面的配置。 阅读详情

相关推荐

Solidworks二次开发(C# .NET API):从零构建装配体与虚拟零件

本文详细介绍了使用C#进行Solidworks二次开发,从零构建装配体与虚拟零件的完整流程。通过.NET API实现设计自动化,涵盖环境搭建、核心对象模型、虚拟零件创建与外部化保存等关键技术,帮助工程师将重复性建模工作程序化,大幅提升设计效率与标准化水平。

alice7model的博客 607

ES6语法

ES6中 针对对象的定义进行了语法上的简化如果对象的属性名和属性值一致,可简写为一个;对象的方法 函数 可以省略 : function等价与 :定义方法时 可以省略 :functioname: "小花",: function() {// console.log("你好");// },console.log("你好");//省略: function},//小花//你好。

hello world 1071

App渗透 - 人脸识别登录绕过

一、APP抓包和逆向破解加密算法打开APP是一个登录框抓包后发现参数被加密了使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数定位过去,一套加解密算法都写好了放在这放到浏览器console里面调试,果然没错二、寻找注入点首先测试了一下注入明文:{"userName":"TEST'...

渗透测试研究中心 2823

Es6 语法

let 和 const 都是块级作用域,以 {} 代码块作为作用域范围,只能在代码块里面使用,不存在变量提升,只能先声明在使用,否则会报错。在代码块内,在声明变量之前, 该变量都是不可用的。在Es6中通常用 var、let、const来声明,var 表示全局变量、let 表示局部变量、const 表示常量。const 声明的是一个只读的常量, 在声明时就需要赋值。如果 const是一个对象。

m0_46214574的博客 583

深入GSConv代码:逐行解析这个混合了标准卷积与深度可分离卷积的‘新算子’

本文深入解析GSConv代码,详细介绍了这个混合标准卷积与深度可分离卷积的‘新算子’的设计哲学与实现框架。通过PyTorch代码逐行分析,揭示GSConv如何在轻量级卷积神经网络中平衡计算效率与特征表达能力,特别适用于Slim-Neck架构,显著降低计算量同时保持高精度。

weixin_29860267的博客 321

(Touch™)搭建 Windows 开发环境

> OpenHaptics 开发包参考文档。

置心一处,便无事不办 1500

ES6语法(最详细文章)

ES6ES6基础语法 ES6基础语法 let/const let //块级作用域 //当前作用域中,不能在let声明前使用变量 //同一个作用域,let不允许重复声明 //let解决了typeof的一个暂时性死区问题。var声明后进行typeof进行检测会出现undefined,但是let会直接报错 //全局作用域中,使用let声明的变量并没有给window加上对应的属性,但是var会添加 //除对象以外的大括号都可以看作块级私有作用域 const //不可被修改初始值 箭头函数和this

前端路上坎坎坷坷,总有一天站在顶峰仰望世界!!! 1339

论文解析-sciPENN

用这2个CITE-seq共有的protein作为训练集,分别将他们特有的protein作为测试集,评估sciPENN对CITE-seq数据集中缺失的protein丰度预测准确度。来自Seurat 4 的PBMC数据集,样本被注射水疱性口炎病毒 (VSV) 载体 HIV 疫苗,数据集包含每个样本注射疫苗0天、3天、7天的CITE-seq数据。PBMCs作为训练集,MALT作为测试集,利用scRNA-seq测试17个蛋白质表达水平。Monocyte:随机取4个样本作为训练集,剩余4个样本作为测试集。

weixin_46065198的博客 1022

ES6基本语法

文章目录一、ES6基本语法二、let声明变量三、const声明常量四、解构赋值4.1 数组解构4.2 对象解构五、 模板字符串5.1 定义多行字符串5.2 字符串插入变量和表达式5.3 字符串中调用函数六、声明对象简写七、定义方法简写八、对象拓展运算符8.1 拷贝对象(深拷贝)8.2 合并对象九、函数的默认参数十、函数的不定参数十一、箭头函数十二、Promise十三、模块化13.1 传统的模块化13.2 ES6的模块化 一、ES6基本语法 ES标准中不包含 DOM 和 BOM的定义,只涵盖基本数据类型、关键

See_Star的博客 2941

别再只用三次多项式了!用MATLAB手把手教你搞定七次多项式轨迹规划(附完整代码)

本文详细介绍了七次多项式在轨迹规划中的优势与应用,通过MATLAB实现从理论推导到实际代码的全过程。相比传统的三次多项式,七次多项式能精确控制位置、速度、加速度和加加速度,实现更平滑的运动控制,特别适用于工业机器人和数控机床等高精度场景。文章包含完整的MATLAB代码示例和优化技巧,帮助工程师快速掌握这一高级轨迹规划方法。

weixin_30872337的博客 298

『与善仁』Appium基础 — 19、元素定位工具之UI Automator Viewer

文章目录(一)uiautomatorviewer定位工具1、uiautomatorviewer介绍2、uiautomatorviewer工具打开方式3、uiautomatorviewer布局介绍4、uiautomatorviewer工具的使用 之前我们在做web页面自动化的时候就说过,元素定位是页面自动化的第一步。 同理App自动化测试的第一步,也是元素的定位。 在APP中定位元素的话,需要借助一些元素定位工具。 APP中的元素定位工具大致有三种: uiautomatorviewer Appium Ins

繁华似锦Fighting 1520

学习koa2应该要了解的es6及以后的语法

学习koa2应该要了解的es6及以后的语法 Koa2框架是这学期web课程老师介绍的一个web框架,抱着学习的态度写了这边文章。 1 关于变量的定义let和var Let是一个块作用域 var 通俗来说var存在变量提升现象,let不存在。 2 模板字符串 var name=“lisi” var age=10; console.log(name+‘年龄’+age)//字符串拼接 c...

qq_47103654的博客 362

检索增强生成(RAG)、微调(Fine-tuning)与知识蒸馏(Knowledge Distillation):核心差异与技术选型指南

在自然语言处理(NLP)领域,大型预训练语言模型(如GPT、BERT系列)的崛起彻底改变了技术生态。面对实际业务场景中模型效果优化与资源效率平衡的永恒命题,开发者主要依赖三大技术路径:检索增强生成(Retrieval-Augmented Generation, RAG)、模型微调(Fine-tuning)和知识蒸馏(Knowledge Distillation)。本文将通过技术原理拆解、典型应用场景对比和实战选型策略三个维度,深入解析这三种技术的本质差异。

fudaihb的博客 1826

vue 2.0 无法编译ES6语法

#vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当使用 vue@2.0 + vue-loader@10.0.2 以后发现,通过 webpack 打包后的代码里面的ES6语法没有转义,google一会后发现,需要在webpack.config.js里...

weixin_33830216的博客 1050

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

vue2 里面es6语法怎么兼容ie浏览器

你可以在你的 Vue 项目中使用 Babel 来转换你的 ES6 代码。Babel 是一个 JavaScript 编译器,它可以将高级 JavaScript 特性(如箭头函数和类)转换为浏览器可以理解的代码。 你需要在你的 Vue 项目中安装 Babel,然后在你的项目的 build 配置中配置 Babel 转换你的代码。 首先,安装 Babel: npminstall --save-dev ba...

weixin_35754676的博客 809

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Vue2 Cli4 项目低版本浏览器ES6语法报错处理

低版本的浏览器对ES6的兼容性差,我们需要将ES6语法转换成ES5的才能在低版本浏览器上正常运行。在Vue2 Cli4项目中我们只需要在babel.config和vue.config两个配置文件进行配置就能基本解决此问题。

LETEfly的博客 1536

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ES6模块化与异步编程与vue2基础语法

promise链式操作发生了问题,不希望前面的错误导致后面.then无法正常执行,可以使用Promise.catch进行捕获和处理。写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。模块化:隔离不同的js文件,仅暴露当前模块所需要的其他模块,降低沟通成本,方便各模块的调用。6.{{xxx}}中的xxx要写js表达式,xxx可自动读取到data中的所有属性。async方法中,第一个await之前的代码会被同步执行,之后的代码会异步执行。

2201_75455711的博客 334

ES6语法2笔记

一、ES6与ES5,函数的不同 1、 函数默认参数 // 1. 在 ES5 语法中,为函数形参指定默认值的写法: // 写法一: function foo (bar) { bar = bar || 'abc'; console.log(bar) } foo('xyz') // 写法二: ...

Y4258的博客 226

2.ES6模板语法

2.ES6模板语法

哩吇的博客 426

VUE2.0支持JSX语法必须要使用es6语法

      今天在写VUE时,碰到一个很奇葩的问题,话不多说,马上贴图讲问题。 可以看到上面data()的写法采用es6语法,这时渲染data里头jsx语法浏览器是正常。下面开始使用es5的写法data :function(){} 浏览器渲染jsx语法开始报错,如图 能否有大神能说明一下具体原因,不胜感激!...

2118

ES6语法(2)

解构赋值 一、数组解构赋值 例一           {             let a,b;             [a,b]=[1,2];             console.log(a);  //1             console.log(b);  //2         } 例二           {          

zangyuechao100的博客 213

ES6语法(2)

允许直接在大括号里面直接放入变量和函数作为对象的属性和方法 函数参数初始化 es6允许给函数参数赋初始值 1.形参初始值,具有默认值的参数,一般位置要靠后 有初始值情况下,不传参数,会自动使用默认值。 2.与解构赋值相结合...

weixin_64804275的博客 259

es6中常用的语法(2)

1、对象的拓展 /* 1、当变量名和属性名一致时,可以简写 */ let foo = { foo } // es6 let foo = { foo: foo } // es5 /* 2、方法也可以简写 */ const a = { method: function() { // es5 return "Hello!"; } method(){ //es6 return "hello" } } /* 拓展运算符(...)*/ let {x, y, ...z} = {x:1, y:2,

weixin_45307270的博客 1488

ES6、ES7...的常用语法(2)

Set和Map数据结构 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i);} // 2 3 5 4 // 去除数组的重复成员 [...new Set(array)] ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不

黑卡米的专栏 476

vue2.0使用ES6语法

ES6 快速入门 什么是ES6?   ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。   ECMAScript和JavaScript到底是什么关系?简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScr...

weixin_30402085的博客 923

为了支持ES6语法要用新版CefSharp,将VS2010升级到VS2022后,有了CefSharp和WebView2两种选择

升级好了VS2022,首先试了下WebBrowser,还是一样不支持ES6语法的网页,与VS2010中的WebBrowser有一点点小区别,就是无需指定内核版本,自动就显示为Edge内核,但一样不支持ES6。CefSharp跑起来至少需要4个包,只需要安装CefSharp.WinForms,其余包会自动带入:上图中,如果右上角,没有选项,可以先在 VS2022-工具-选项 手工加入:安装好后,工具箱中多出ChromiumWebBrowser控件。

股民程序员 2374
上一篇: 9.组件
下一篇: 3.vue语法
亦难猿
博客等级 码龄8年 6粉丝 15原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值