ECMAScript介绍

一、ECMAScript 简介

ECMAScript 是 JavaScript 的标准化名称,广泛用于网页开发,也可用于 Qt 的 QML/ECMAScript 脚本。它是一种动态、弱类型、基于对象的脚本语言。


二、基础语法对比

特性ECMAScript (JS)C/C++Python
变量声明let, const, varint, float, char等直接变量名
结束符;(可选);换行
注释// 单行, /* 多行 *///, /* */# 单行, ‘’‘多行’‘’
函数定义function/箭头函数返回类型+函数名def 关键字
class 关键字class 关键字class 关键字
数组[][]/array[]
字典/对象{}struct/map{}
类型系统动态、弱类型静态、强类型动态、强类型

三、ECMAScript 基础语法

1. 变量声明

let a = 10;      // 块作用域变量
const b = 20;    // 常量
var c = 30;      // 函数作用域变量(不推荐)

2. 数据类型

  • Number, String, Boolean, Object, Array, Null, Undefined, Symbol

3. 条件语句

if (a > 5) {
    // ...
} else if (a == 5) {
    // ...
} else {
    // ...
}

4. 循环

for (let i = 0; i < 10; i++) {
    // ...
}

while (a < 10) {
    // ...
}

for (let item of arr) {
    // 遍历数组
}

5. 函数

function add(x, y) {
    return x + y;
}

// 箭头函数
const add = (x, y) => x + y;

6. 对象与数组

let obj = {name: "Tom", age: 18};
let arr = [1, 2, 3, 4];

7. 类与继承

class Animal {
    constructor(name) {
        this.name = name;
    }
    speak() {
        console.log(this.name + " makes a noise.");
    }
}

class Dog extends Animal {
    speak() {
        console.log(this.name + " barks.");
    }
}

四、与 C/C++、Python 的异同

1. 变量声明与类型

  • ECMAScript 不需要声明类型,变量类型可变。
  • C/C++ 需声明类型,Python 也不需声明类型但类型不可变。
  • ECMAScript 有 let/const/var,Python 直接变量名,C/C++ 需类型前缀。

2. 作用域

  • ECMAScript 的 let/const 有块级作用域,var 只有函数作用域。
  • C/C++、Python 都有块级作用域。

3. 内存管理

  • ECMAScript 和 Python 都有垃圾回收,C/C++ 需手动管理内存。

4. 面向对象

  • ECMAScript 支持 class 语法(ES6+),但本质是基于原型的对象系统。
  • C++ 是基于类的,Python 也是基于类的。

5. 函数

  • ECMAScript 支持匿名函数、箭头函数,函数也是对象。
  • Python 支持 lambda,C++11 也有 lambda。

6. 模块与导入

  • ECMAScript (ES6+) 用 import/export。
  • Python 用 import,C++ 用 #include。

五、ECMAScript 常用特性

  1. 箭头函数:简洁的函数表达式
  2. 解构赋值:快速提取对象/数组属性
  3. 模板字符串: 包裹,支持变量嵌入
  4. Promise/async/await:异步编程
  5. Map/Set:新的集合类型
  6. for…of, for…in:遍历数组/对象

六、QML/ECMAScript 特点

  • QML 中的 JavaScript 语法与 ECMAScript 基本一致。
  • 可直接在 QML 文件中编写 JS 脚本,操作 QML 元素属性。
  • 适合做界面逻辑、动画、数据绑定等。

七、学习建议

  1. 熟悉基本语法(变量、函数、对象、数组、类)。
  2. 多练习 QML/ECMAScript 脚本,结合 Qt 文档。
  3. 理解异步编程(Promise/async/await)。
  4. 参考 MDN JavaScript 教程
  5. 结合 Qt 官方 QML/JS 文档:Qt QML JavaScript
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值