1# JS语法参考
2
3
4JS文件用来定义HML页面的业务逻辑,支持ECMA规范的JavaScript语言。基于JavaScript语言的动态化能力,可以使应用更加富有表现力,具备更加灵活的设计。下面讲述JS文件的编译和运行的支持情况。
5
6
7## 语法
8
9支持ES6语法。轻量级智能穿戴支持的ES6语法有限,仅支持以下ES6 语法:
10
111. let/const
12
132. arrow functions
14
153. class
16
174. default value
18
195. destructuring assignment
20
216. destructuring binding pattern
22
237. enhanced object initializer
24
258. for-of
26
279. rest parameter
28
2910. template strings
30
31- 模块声明
32  使用import方法引入功能模块:
33
34
35  ```
36  import router from '@ohos.router';
37  ```
38
39- 代码引用
40  使用import方法导入js代码:
41
42
43  ```
44  import utils from '../../common/utils.js';
45  ```
46
47
48## 对象
49
50- 页面对象
51    | 属性    | 类型              | 描述                                       |
52    | ----- | --------------- | ---------------------------------------- |
53    | data  | Object/Function | 页面的数据模型,类型是对象或者函数,如果类型是函数,返回值必须是对象。属性名不能以$或_开头,不要使用保留字for,&nbsp;if,&nbsp;show,&nbsp;tid。<br/> |
54    | $refs | Object          | 持有注册过ref&nbsp;属性的DOM元素或子组件实例的对象。示例见[获取DOM元素](#获取dom元素)。 |
55
56
57## 获取DOM元素
58
591. 通过$refs获取DOM元素
60
61   ```html
62   <!-- index.hml -->
63   <div class="container">
64     <image-animator class="image-player" ref="animator" images="{{images}}" duration="1s" onclick="handleClick"></image-animator>
65   </div>
66   ```
67
68
69   ```js
70   // index.js
71   export default {
72     data: {
73       images: [
74         { src: '/common/frame1.png' },
75         { src: '/common/frame2.png' },
76         { src: '/common/frame3.png' },
77       ],
78     },
79     handleClick() {
80       const animator = this.$refs.animator; // 获取ref属性为animator的DOM元素
81       const state = animator.getState();
82       if (state === 'paused') {
83         animator.resume();
84       } else if (state === 'stopped') {
85         animator.start();
86       } else {
87         animator.pause();
88       }
89     },
90   };
91   ```