14514f5e3Sopenharmony_ci/* 24514f5e3Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License. 54514f5e3Sopenharmony_ci * You may obtain a copy of the License at 64514f5e3Sopenharmony_ci * 74514f5e3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84514f5e3Sopenharmony_ci * 94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and 134514f5e3Sopenharmony_ci * limitations under the License. 144514f5e3Sopenharmony_ci */ 154514f5e3Sopenharmony_ci 164514f5e3Sopenharmony_cilet array = ['1', '2', '3']; 174514f5e3Sopenharmony_cilet map = new Map(); 184514f5e3Sopenharmony_cimap.set('a', 1); 194514f5e3Sopenharmony_cimap.set('b', 2); 204514f5e3Sopenharmony_ci 214514f5e3Sopenharmony_cifunction func() { 224514f5e3Sopenharmony_ci 234514f5e3Sopenharmony_ci} 244514f5e3Sopenharmony_ci 254514f5e3Sopenharmony_cilet objs = [array, map, func]; 264514f5e3Sopenharmony_ci 274514f5e3Sopenharmony_ci// integer or float constant 284514f5e3Sopenharmony_cilet num1 = 42; // int 294514f5e3Sopenharmony_cilet num2 = 3.14; // float 304514f5e3Sopenharmony_cilet bigInt = BigInt(9007199254740991); 314514f5e3Sopenharmony_cilet num3 = NaN; // nan number 324514f5e3Sopenharmony_cilet num4 = Infinity; // Positive infinity 334514f5e3Sopenharmony_cilet num5 = -Infinity; // negative infinity 344514f5e3Sopenharmony_ci 354514f5e3Sopenharmony_ci// string 364514f5e3Sopenharmony_cilet str1 = 'Hello'; 374514f5e3Sopenharmony_cilet str2 = 'World'; 384514f5e3Sopenharmony_cilet str3 = `This is a template string. ${str1} ${str2}!`; 394514f5e3Sopenharmony_ci 404514f5e3Sopenharmony_ci// bool 414514f5e3Sopenharmony_cilet bool1 = true; 424514f5e3Sopenharmony_cilet bool2 = false; 434514f5e3Sopenharmony_ci 444514f5e3Sopenharmony_ci// null type 454514f5e3Sopenharmony_cilet nullVar = null; 464514f5e3Sopenharmony_ci 474514f5e3Sopenharmony_ci// undefined type 484514f5e3Sopenharmony_cilet undefinedVar; 494514f5e3Sopenharmony_ci 504514f5e3Sopenharmony_ci// array type 514514f5e3Sopenharmony_cilet arr0 = new Int8Array(); 524514f5e3Sopenharmony_cilet arr1 = new Uint8Array(); 534514f5e3Sopenharmony_cilet arr2 = new Int16Array(); 544514f5e3Sopenharmony_cilet arr3 = new Uint16Array(); 554514f5e3Sopenharmony_cilet arr4 = new Int32Array(); 564514f5e3Sopenharmony_cilet arr5 = new Uint32Array(); 574514f5e3Sopenharmony_cilet arr6 = new BigInt64Array(); 584514f5e3Sopenharmony_cilet arr7 = new BigUint64Array(); 594514f5e3Sopenharmony_cilet arr8 = new Float32Array(); 604514f5e3Sopenharmony_cilet arr9 = new Float64Array(); 614514f5e3Sopenharmony_cilet arr10 = new Uint8ClampedArray(); 624514f5e3Sopenharmony_cilet buffer = new ArrayBuffer(8); 634514f5e3Sopenharmony_cilet sharedBuf = new SharedArrayBuffer(1024); 644514f5e3Sopenharmony_ci 654514f5e3Sopenharmony_cilet list = [1, 2, 3, 4, 5]; 664514f5e3Sopenharmony_cifor (let item of list) { 674514f5e3Sopenharmony_ci print(item); 684514f5e3Sopenharmony_ci} 694514f5e3Sopenharmony_ci 704514f5e3Sopenharmony_ci// funtion 714514f5e3Sopenharmony_cifunction greet() { 724514f5e3Sopenharmony_ci print('Hello, this is a function!'); 734514f5e3Sopenharmony_ci} 744514f5e3Sopenharmony_ci 754514f5e3Sopenharmony_ci// data type 764514f5e3Sopenharmony_cilet date = new Date(); 774514f5e3Sopenharmony_ci 784514f5e3Sopenharmony_ci// lambda 794514f5e3Sopenharmony_cilet regex = /hello/i; // Case insensitive matching "hello" 804514f5e3Sopenharmony_ci 814514f5e3Sopenharmony_ci// object type 824514f5e3Sopenharmony_cilet obj = { 834514f5e3Sopenharmony_ci name: 'Alice', 844514f5e3Sopenharmony_ci age: 25, 854514f5e3Sopenharmony_ci greet: function() { 864514f5e3Sopenharmony_ci print('Hello, my name is ' + this.name); 874514f5e3Sopenharmony_ci } 884514f5e3Sopenharmony_ci}; 894514f5e3Sopenharmony_ci 904514f5e3Sopenharmony_ci// class 914514f5e3Sopenharmony_ciclass Person { 924514f5e3Sopenharmony_ci constructor(name, age) { 934514f5e3Sopenharmony_ci this.name = name; 944514f5e3Sopenharmony_ci this.age = age; 954514f5e3Sopenharmony_ci } 964514f5e3Sopenharmony_ci 974514f5e3Sopenharmony_ci greet() { 984514f5e3Sopenharmony_ci print(`Hello, my name is ${this.name} and I'm ${this.age} years old.`); 994514f5e3Sopenharmony_ci } 1004514f5e3Sopenharmony_ci} 1014514f5e3Sopenharmony_ci 1024514f5e3Sopenharmony_ciglobalThis.person = new Person('Alice', 25); 1034514f5e3Sopenharmony_ci 1044514f5e3Sopenharmony_ci// Exception 1054514f5e3Sopenharmony_cifunction divide(a, b) { 1064514f5e3Sopenharmony_ci if (b === 0) { 1074514f5e3Sopenharmony_ci throw new Error('The divisor cannot be 0'); 1084514f5e3Sopenharmony_ci } 1094514f5e3Sopenharmony_ci return a / b; 1104514f5e3Sopenharmony_ci} 1114514f5e3Sopenharmony_ci 1124514f5e3Sopenharmony_citry { 1134514f5e3Sopenharmony_ci let result = divide(10, 0); 1144514f5e3Sopenharmony_ci} catch (error) { 1154514f5e3Sopenharmony_ci print('\nthrow statement\n'); 1164514f5e3Sopenharmony_ci} 1174514f5e3Sopenharmony_ci 1184514f5e3Sopenharmony_ci// Promise 1194514f5e3Sopenharmony_cilet promise = new Promise((resolve, reject) => { 1204514f5e3Sopenharmony_ci // Simulated asynchronous operation 1214514f5e3Sopenharmony_ci setTimeout(() => { 1224514f5e3Sopenharmony_ci let success = false; // Simulated operation failed 1234514f5e3Sopenharmony_ci if (success) { 1244514f5e3Sopenharmony_ci resolve('operation success'); 1254514f5e3Sopenharmony_ci } else { 1264514f5e3Sopenharmony_ci reject(new Error('operation failed')); 1274514f5e3Sopenharmony_ci } 1284514f5e3Sopenharmony_ci }, 1000); 1294514f5e3Sopenharmony_ci}); 1304514f5e3Sopenharmony_ci 1314514f5e3Sopenharmony_cipromise.then((result) => { 1324514f5e3Sopenharmony_ci print(result); 1334514f5e3Sopenharmony_ci}).catch((error) => { 1344514f5e3Sopenharmony_ci print('Promise handle\n'); 1354514f5e3Sopenharmony_ci}); 1364514f5e3Sopenharmony_ci 1374514f5e3Sopenharmony_ci// Asynchronous type 1384514f5e3Sopenharmony_ciasync function fetchDataWithAsyncAwait() { 1394514f5e3Sopenharmony_ci return 'async/await get the data'; 1404514f5e3Sopenharmony_ci} 1414514f5e3Sopenharmony_ci 1424514f5e3Sopenharmony_ciasync function fetchAndLogData() { 1434514f5e3Sopenharmony_ci try { 1444514f5e3Sopenharmony_ci const data = await fetchDataWithAsyncAwait(); 1454514f5e3Sopenharmony_ci } catch (err) { 1464514f5e3Sopenharmony_ci print('ERROR:', err); 1474514f5e3Sopenharmony_ci } 1484514f5e3Sopenharmony_ci} 1494514f5e3Sopenharmony_ci 1504514f5e3Sopenharmony_cifetchAndLogData(); 151