会计公司网站模板,重庆规模最大的建网站公司,电商网站建设用php,企业网站seo外包 s### JS复习练习
- 
1. 任务1#xff1a;创建一个简单的问候函数
- 编写一个函数greet#xff0c;接受一个名字作为参数#xff0c;并返回一个问候语#xff0c;例如#xff1a;“Hello, [名字]! Welcome to Jav…### JS复习练习
- 
1. 任务1创建一个简单的问候函数
- 编写一个函数greet接受一个名字作为参数并返回一个问候语例如“Hello, [名字]! Welcome to JavaScript.”。
js
function greet(name){ return Hello,${name}! Welcome to JavaScript
}
console.log(创建简单的问候函数 );
console.log(greet(李华)); 2. 任务2计算数组的平均值
- 编写一个函数calculateAverage接受一个数字数组作为参数并返回数组的平均值。
js
function calculateAverage(arr) { let sum 0 arr.forEach(x { sum x }); let ave sum / arr.length return ave;
}
console.log(计算数组的平均值 );
console.log(calculateAverage([1,2,3,4,5])) // 第二种方法【reduce】
function calculateAverage02(array) { const sum array.reduce((x,y) (x y),0) /array.length return sum
}
console.log(calculateAverage02([1,2,3,4,5])); 3. 任务3检查字符串是否为回文
- 编写一个函数isPalindrome接受一个字符串作为参数判断该字符串是否为回文正读和反读相同。
js
function isPalindrome(Str){ // 清理字符串都变成小写不要空字符 【 .toLowerCase(); 】 const One Str.replace(/[^a-zA-Z0-9]/g,).toLowerCase() // g 代表全局匹配如果没有的话默认为查找第一个字符 // 反读 【split()把字符串拆分成数组】【reverse()反转】【join()把数组重新拼接成字符串】 const Two One.split().reverse().join() if (One Two) { console.log(是回文); } else{ console.log(不是回文); }
}
console.log(检查字符串是否为回文 );
isPalindrome(alrla)
isPalindrome(abcd) 4. 任务4实现一个简单的计数器
- 使用闭包实现一个简单的计数器每次调用时返回当前的计数值。
js
// 闭包让内部函数能够访问并修改外部函数的作用域中的变量 // 定义一个外部函数
function A(){ let number 0 // AA 函数的参数 number 不能与外部变量同名会导致作用域冲突。 // 去掉参数后AA 函数可以直接访问和修改外部的 number从而实现闭包的效果。 function AA(){ number // 返回当前值 return number } // 返回内部函数的值让外部可以调用 return AA;
}
console.log(闭包);
const counts A()
console.log(counts());
console.log(counts());
console.log(counts()); 5. 任务5过滤数组中的偶数
- 编写一个函数filterEvenNumbers接受一个数字数组作为参数返回一个只包含偶数的新数组。
js
function filterEvenNumbers(ArrayList) { console.log(过滤数组中的偶数 ); const NewAL ArrayList.filter(item item % 2 0 ) console.log(NewAL);
}
filterEvenNumbers([1,2,3,4,5,6]); 6. 任务6实现一个简单的对象工厂
- 编写一个函数createPerson接受name和age作为参数返回一个包含这些属性的对象。
js
function createPerson(Name,Age) { const Obj {Name,Age} return Obj
}
console.log( 简单的对象工厂 );
console.log(createPerson(翠花,18)); 7. 任务7递归计算阶乘
- 编写一个递归函数factorial计算一个非负整数的阶乘。
js
// 阶乘的定义是
// n!n×(n−1)×(n−2)×⋯×1
// 0!1
function factorial(Num){ if (Num 0) { return 1 } else{ // factorial(Num-1) 是一个递归调用而不是直接的数值。它的作用是计算 Num-1 的阶乘然后将结果乘以当前的 Num。 return Num * factorial(Num-1) }
}
function factorial02(Num){ // 【三元运算符】 条件表达式 ? 表达式1 : 表达式2 return Num 0 ? 1 : Num * factorial02(Num - 1)
}
console.log( 递归计算阶乘 );
console.log(factorial(4));
console.log(factorial02(4)); 8. 任务8实现一个简单的事件监听器
- 编写一个函数addEventListener模拟HTML元素的事件监听器功能。接受一个事件类型和一个回调函数作为参数并在触发时调用回调函数。
js
console.log( 事件监听器 );
function addEventListene(event,callback){ function even(){ console.log(这个${event}被触发了); callback() } even()
}
addEventListene(click,function(){}) console.log( 实现简单的模块 ); 9. 任务9实现一个简单的模块
- 使用模块模式封装一个mathUtils模块包含add和multiply两个函数
js
const mathUtils (function(){ function add(a,b){ return ab } function multiply(a,b){ return a*b } return{add,multiply}
})()
console.log(mathUtils.add(1,2));
console.log(mathUtils.multiply(1,2)); console.log( 实现Promise ); 10. 任务9实现一个简单的Promise
- 使用Promise实现一个异步函数fetchData模拟从服务器获取数据。如果成功返回一个字符串如果失败抛出一个错误。
js
function fetchData(){ return new Promise((resolve,reject){ const aa true if (aa) { resolve(获取成功); } else{ reject(new Error(获取失败)) } })
}
fetchData().then(xconsole.log(x)) ### 创建完整nodejs项目
- package.json
json
{ name:Demo01, main: app.js, scripts: { rr:node app.js }, dependencies: { koa:latest }
} - npm i 安装依赖
- npm run rr 跑起来
-  ### CommonJS 与 ES Modules 的区别及常规用法
1. CommonJS是一种模块化规范主要用于 Node.js 环境。它通过 require 和 module.exports 实现模块的导入和导出。
- 代码
js
导出模块
// setting.js
function fn() { console.log(我是CommonJS);
} function fn01() { console.log(我尝试一下);
} module.exports { fn, fn01 }; 导入模块
// app.js
const abc require(./setting);
abc.fn(); // 输出: 我是CommonJS
abc.fn01(); // 输出: 我尝试一下 2. ES Modules是 JavaScript 的原生模块化规范适用于浏览器和 Node.js需配置支持。它通过 import 和 export 实现模块的导入和导出。 - 支持动态导入通过 import() 返回一个 Promise支持按需加载。 - 需配置 type: module 或使用 .mjs 文件扩展名。
- 代码
js
导出模块
// abc.mjs
export function fnA() { console.log(我是ES);
}
export const arr [1, 2, 3, 4, 5, 6]; 导入模块
// app.mjs
let abc await import (./abc.mjs)
abc.fnA() // 输出: 我是ES
console.log(abc.arr) // 输出: [1, 2, 3, 4, 5, 6] #### CommonJS 与 ES Modules 的区别
| 特性 | CommonJS | ES Modules |
|------------------|-----------------------------------------------|-------------------------------------------------|
| **加载方式** | 同步加载运行时解析依赖 | 静态分析编译时解析依赖 |
| **导入语法** | 使用 require() | 使用 import 和 export |
| **动态加载支持** | 不支持 | 支持通过 import() |
| **运行时性能** | 稍低动态解析 | 较高静态优化 |
| **作用域** | 模块私有作用域模块导出的内容会被缓存 | 导入的是活的绑定模块内部值变化会反映到导入处 |
| **适用环境** | 主要用于 Node.js | 适用于浏览器和 Node.js |
| **文件扩展名** | 默认 .js | 需 .mjs 或配置 type: module | ## 注意事项
### 文件扩展名
- 如果使用 ES Modules文件扩展名需为 .mjs或在 package.json 中配置 type: module。
- CommonJS 默认使用 .js 扩展名。 ### 运行环境
- **CommonJS** 是 Node.js 的传统模块系统适合服务器端开发。
- **ES Modules** 是现代 JavaScript 的模块化标准适用于浏览器和 Node.js支持静态分析和动态导入。
文章转载自: http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.tfznk.cn.gov.cn.tfznk.cn http://www.morning.tgcw.cn.gov.cn.tgcw.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.clwhf.cn.gov.cn.clwhf.cn http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn http://www.morning.wlbwp.cn.gov.cn.wlbwp.cn http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn http://www.morning.xrhst.cn.gov.cn.xrhst.cn http://www.morning.qflcb.cn.gov.cn.qflcb.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.spxk.cn.gov.cn.spxk.cn http://www.morning.rqlbp.cn.gov.cn.rqlbp.cn http://www.morning.jwsrp.cn.gov.cn.jwsrp.cn http://www.morning.fjscr.cn.gov.cn.fjscr.cn http://www.morning.fpkpz.cn.gov.cn.fpkpz.cn http://www.morning.rxnl.cn.gov.cn.rxnl.cn http://www.morning.mxhys.cn.gov.cn.mxhys.cn http://www.morning.cykqg.cn.gov.cn.cykqg.cn http://www.morning.ptzf.cn.gov.cn.ptzf.cn http://www.morning.xplng.cn.gov.cn.xplng.cn http://www.morning.xlztn.cn.gov.cn.xlztn.cn http://www.morning.slwfy.cn.gov.cn.slwfy.cn http://www.morning.blzrj.cn.gov.cn.blzrj.cn http://www.morning.gfqj.cn.gov.cn.gfqj.cn http://www.morning.pxlql.cn.gov.cn.pxlql.cn http://www.morning.xqspn.cn.gov.cn.xqspn.cn http://www.morning.xkyfq.cn.gov.cn.xkyfq.cn http://www.morning.jkmjm.cn.gov.cn.jkmjm.cn http://www.morning.wmfmj.cn.gov.cn.wmfmj.cn http://www.morning.fslrx.cn.gov.cn.fslrx.cn http://www.morning.ryztl.cn.gov.cn.ryztl.cn http://www.morning.jphxt.cn.gov.cn.jphxt.cn http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn http://www.morning.ykgp.cn.gov.cn.ykgp.cn http://www.morning.bklkt.cn.gov.cn.bklkt.cn http://www.morning.ysckr.cn.gov.cn.ysckr.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.gl-group.cn.gov.cn.gl-group.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.wfykn.cn.gov.cn.wfykn.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.fchkc.cn.gov.cn.fchkc.cn http://www.morning.pmxw.cn.gov.cn.pmxw.cn http://www.morning.qnzld.cn.gov.cn.qnzld.cn http://www.morning.jrqw.cn.gov.cn.jrqw.cn http://www.morning.dygsz.cn.gov.cn.dygsz.cn http://www.morning.qrpx.cn.gov.cn.qrpx.cn http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn http://www.morning.bynf.cn.gov.cn.bynf.cn http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn http://www.morning.gxfpk.cn.gov.cn.gxfpk.cn http://www.morning.jkcnq.cn.gov.cn.jkcnq.cn http://www.morning.xsjfk.cn.gov.cn.xsjfk.cn http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn http://www.morning.mrncd.cn.gov.cn.mrncd.cn http://www.morning.hmmnb.cn.gov.cn.hmmnb.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn http://www.morning.krjyq.cn.gov.cn.krjyq.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.trtxt.cn.gov.cn.trtxt.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.xyrss.cn.gov.cn.xyrss.cn http://www.morning.qllcm.cn.gov.cn.qllcm.cn http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn http://www.morning.drqrl.cn.gov.cn.drqrl.cn http://www.morning.qrcsb.cn.gov.cn.qrcsb.cn http://www.morning.nclps.cn.gov.cn.nclps.cn http://www.morning.nrgdc.cn.gov.cn.nrgdc.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.pdghl.cn.gov.cn.pdghl.cn http://www.morning.ltywr.cn.gov.cn.ltywr.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn