JavaScript 大佬速成 - 4 - 使用JS开发JS模块
前言根据前三篇教程
我们已经学会了很多实用的js技巧
今天我来带大家手搓assert模块
开始
兄弟们 开始手搓assert模块啦
创建一个名为assert.js的文件
首先我们要知道C中assert标准库的作用
assert提供了一个宏 接受一个参数判断 如果参数不为真则弹出错误
那我们可以把assert方法当做一个函数来看待
让我们来分析一下
export var assert = {
//code
}//创建一个对象
export关键字用于导出一个变量
( 有些环境可能会出问题 建议直接放到浏览器控制台测试
然后我们往这个对象里增加唯一一个函数
assert
var assert = {
assert : str => {
if(!str){ alert(Error.name + "\n" + str + "不为真");console.error() }
}
}
上述代码声明了一个函数变量
也就是assert函数
接受一个参数
当参数为真则什么也不会发生
如果发生为假则弹出 内置对象Error的name值 其不为真
如果有有错误则使用console的error方法将错误打印到控制台上
但是这时候我们就遇到了一个问题
如果条件是字符串的"5<0"也会返回真
因为解释器认为字符串存在所以是真
要想解决这个问题我们需要对代码进行一些修改
我们在条件上增加了eval将字符转换为式所以最后得到false 弹窗正常弹出
如果直接写表达式也会正常弹出 ( 直接写布尔类型也行
除此之外
我们可以这么写避免给出的不是一个正确的条件表达式
if(typeof eval(str) === "boolean"){
//...code
}
正确的条件表达式会返回一个布尔值
该条件可以避免给出的不是一个合理的条件表达式
然后我们保存文件
在HTML里加入
<script src="assert.js"></script>
<script>assert.assert(false)</script>
或者在js里加入
import assert from "assert.js";
assert.assert(false);
如果正常弹出弹窗就成功啦
是不是很简单呢
示例文件下载::
结语
Js写js模块仅能实现前端功能
如果想实现后端功能你应该去学习nodejs和npm 不要忘记在script元素里加上type="module"哦
要不然export和import均无效[贴吧_滑稽][贴吧_滑稽][贴吧_滑稽]
我刚被坑,你们别被坑了就行 示例代码忘加export关键字了
不过不要紧
因为var关键字会污染全局
另外只要你HTML引用上问题不大 我是李君子 发表于 2024-2-7 22:19
示例代码忘加export关键字了
不过不要紧
不学java但前排支持!
页: [1]