当前位置: 首页 > news >正文

博客网站开发利用数据库北京好用的h5建站

博客网站开发利用数据库,北京好用的h5建站,在线网站排名工具,工程管理毕业设计代做网站文章目录 JS基础检测当前运行环境浏览器端 JavaScript组成#xff1a;#xff08;3个部分#xff09;Node Demo:读文件并返回大小 JS语法变量声明 let / const / var数据类型栈内存和堆内存Undefined#xff1a;未定义类型Null#xff1a;空对象 运算符流程控制函数作用域… 文章目录 JS基础检测当前运行环境浏览器端 JavaScript组成3个部分Node Demo:读文件并返回大小 JS语法变量声明 let / const / var数据类型栈内存和堆内存Undefined未定义类型Null空对象 运算符流程控制函数作用域与闭包对象数组模块化异步基础错误处理 JS基础 检测当前运行环境 console.log(typeof window undefined ? Node : Browser);进阶做法用 globalThis console.log(globalThis.window ? Browser : Node);globalThis 是所有环境都存在的统一顶级对象在 Node 里 globalThis.window 为 undefined在浏览器里指向 window 本身。 浏览器端 JavaScript组成3个部分 组成作用核心接口DemoECMAScript语言本体 (语法 内建对象)Array, PromiseMath.random()DOM (Document Object Model)操作页面元素document.querySelector, Element.classListjs document.body.style.backgroundlavender; BOM (Browser Object Model)操作浏览器窗口/历史/地址location, history, navigatorjs alert(location.href); Node Demo:读文件并返回大小 // size.js //运行命令 node size.js Test111.txt import { statSync } from fs; import { resolve } from path;const file resolve(process.argv[2]); const { size } statSync(file); console.log(File size: ${size} bytes);输出 File size: 57 bytes文件不存在 node size.js nofile.txt会抛出错误并终止执行 Error: ENOENT: no such file or directory, stat /F:zyx/nofile.txt未提供参数 (process.argv[2] 是 undefined就会有这个问题) TypeError [ERR_INVALID_ARG_TYPE]: The path argument must be of type string. Received undefinedJS语法 变量声明 let / const / var 要点 let 和 const 拥有块级作用域存在「暂时性死区」TDZ禁止在声明前访问。 const 声明后不可重新赋值但若值是对象其属性仍可变。 var 具函数作用域并会变量提升容易造成混淆通常仅维护旧代码时使用。 {console.log(typeof value); // ⚠️ ReferenceErrorTDZ这就是在声明之前访问了声明在下一句let value 42;const PI 3.1416;// PI 3; // ⚠️ TypeError: Assignment to constant variable }在进入花括号后value 处于 TDZ尝试访问即抛错。 PI 一旦赋值后不可再次赋值。 输出TDZ声明前访问 ReferenceError: Cannot access value before initialization数据类型 要点 基本数据类型number (含 NaN、Infinity)、string、boolean、undefined、null、symbol、bigint引用数据类型Object Array、Function、自定义对象……注意内置对象 Function、Array、Date、RegExp、Error 等都是属于 Object 类型。也就是说除了那七种基本数据类型之外其他的都称之为 Object 类型。 console.log(typeof null); // 为何是 object console.log(typeof 10n); // bigint console.log(typeof Symbol()); // symbol早期实现遗留导致 typeof null 返回 object Symbol() 生成独一无二的标识符用于对象私有键。 基本数据类型举例 var a 23; var b a;a;console.log(a); // 打印结果24 console.log(b); // 打印结果23a 和 b 都是基本数据类型让 b 等于 a然后改变 a 的值之后发现 b 的值并没有被改变。 引用数据类型举例 var obj1 new Object(); obj1.name smyh;// 让 obj2 等于 obj1 var obj2 obj1;// 修改 obj1 的 name 属性 obj1.name vae;console.log(obj1.name); // 打印结果vae console.log(obj2.name); // 打印结果vaeobj1 和 obj2 都是引用数据类型让 obj2 等于 obj1然后修改 obj1.name 的值之后发现 obj2.name 的值也发生了改变。 栈内存和堆内存 JS 中所有的变量都是保存在栈内存中的。 基本数据类型 基本数据类型的值**直接保存在栈内存中。**值与值之间是独立存在修改一个变量不会影响其他的变量。 引用数据类型 对象是保存到堆内存中的。每创建一个新的对象就会在堆内存中开辟出一个新的空间而变量保存了对象的内存地址对象的引用保存在栈内存当中。如果两个变量保存了同一个对象的引用当一个通过一个变量修改属性时另一个也会受到影响。 这一点和py是很像的。 Undefined未定义类型 Undefined 类型的值只有一个就是 undefind。比如 var a undefined。 使用 typeof 检查一个 undefined 值时会返回 undefined。 undefined 的出现有以下几种情况 变量已声明未赋值未初始化一个变量如果只声明了但没有赋值此时它的值就是 undefined。变量未声明未定义如果你从未声明一个变量就去使用它则会报错这个大家都知道此时如果用 typeof 检查这个变量时会返回 undefined。函数无返回值时在定义一个函数时如果末尾没有 return 语句那么其实就是 return undefined。调用函数时未传参 调用函数时如果没有传实参那么对应形参的值就是 undefined。 function foo(name) {console.log(name); }foo(); // 调用函数时未传参。执行函数后的打印结果undefined实际开发中如果调用函数时没有传参我们可以根据需要给形参设置一个默认值 function foo(name) {name name || qianguyihao; }foo();等学习了 ES6 之后上方代码也可以这样写 function foo(name qianguyihao) {}foo();Null空对象 如果你想定义一个变量用来保存引用类型也就是对象但是还不确定放什么内容这个时候可以在初始化时将其赋值为 null。 从语义上讲null表示一个空对象所以使用 typeof 检查一个 null 值时会返回 object。举例 var myObj null; cosole.log(typeof myObj); // 打印结果objectundefined 实际上是由 null 衍生出来的所以null undefined的结果为 true。null undefined 的结果是 false。它们虽然相似但还是有区别的其中一个区别是和数字运算时 10 null 结果为 10。10 undefined 结果为 NaN。 运算符 算数 - * / % **比较 ! 务必用全等 逻辑 || !含短路行为三元condition ? A : B模板字符串用反引号 , 可内插 ${…}。 Demo const score 75; const ok score 60 ? pass : fail; const msg Result: ${ok}, score ${score}; console.log(msg);score 60 为真三元返回 pass。模板字符串直接插入变量无需拼接。 输出 Result: pass, score 75流程控制 条件if…else, switch 循环for(索引)、for…in(枚举键)、for…of(遍历可迭代对象) break / continue 控制跳出或跳过。 Demo const arr [a, b, c]; for (const val of arr) {if (val b) continue;console.log(val); // 打印 a 和 c }for…of 直接拿值当遇到 b 时 continue 跳过本轮。 输出 a c函数 声明式有函数提升表达式 / 箭头函数在赋值后才能调用默认参数与剩余参数 ...args箭头函数不绑定自己的 this / arguments。 Demo const sum (...ns) ns.reduce((a, b) a b, 0); console.log(sum(1, 2, 3, 4)); // 10解释 ...ns 收集任意个参数生成数组。reduce 累加得到总和。 输出 10作用域与闭包 JS 使用词法作用域静态作用域闭包 函数 其引用的外部变量即便外部函数已返回。 Demo function makeCounter() {let count 0;return () count; }const inc makeCounter(); console.log(inc()); // 1 console.log(inc()); // 2inc 始终持有对 count 的引用形成闭包累加状态得以保留。 输出 1 2对象 字面量简写{x} 等价于 {x: x}计算属性[prop i]: value方法简写say() {}可选链obj?.child?.name 防止空值报错。 Demo const x 5; const o {x, // 简写[y 1]: 6, // 计算属性名 y1say() { return this.x } }; console.log(o.y1, o.say()); // 6 5输出 6 5数组 高阶函数map, filter, reduce解构、扩展 ...Array.isArray(obj) 判断。 Demo const raw [1, 2, 3, 4]; const squares raw.map(n n ** 2); // [1,4,9,16] const evens raw.filter(n n % 2 0); // [2,4] const total raw.reduce((a, b) a b, 0); // 10 const [head, ...rest] raw; // 解构 console.log(squares, evens, total, head, rest);输出 [ 1, 4, 9, 16 ] [ 2, 4 ] 10 1 [ 2, 3, 4 ]模块化 ES Module浏览器 / Node ≥ v14 原生支持 export const foo …; / export default …;import foo, { bar } from ./lib.js; CommonJS旧版 Node module.exports …; / const foo require(./lib); Demo (ESM) // math.js export const add (a, b) a b;// main.mjs import { add } from ./math.js; console.log(add(2, 3)); // 5输出 5异步基础 回调 → Promise → async/await 是演进路线。静态方法Promise.all, Promise.race。await 只能在 async 函数或顶级 module 中使用。 Demo function delay(ms) {return new Promise(res setTimeout(res, ms)); }(async () {console.time(t);await delay(500);console.timeEnd(t); // ≈ 500ms })();delay 返回在指定毫秒后解决的 Promise。await 暂停执行确保时序易读。 输出 t: 500.XXXms错误处理 try / catch / finally 捕获同步 await 抛出的异常。自定义错误类继承 Error。 Demo class BadInputError extends Error {constructor(msg) { super(msg); this.name BadInputError; } }function parseJson(str) {if (typeof str ! string) throw new BadInputError(Need string);return JSON.parse(str); }try {parseJson(42); } catch (e) {console.error(e.name, e.message); // BadInputError Need string } finally {console.log(done); }输出 BadInputError Need string done
http://www.hkea.cn/news/14431054/

相关文章:

  • 怎么做网站加盟镇江网页设计师招聘
  • 城乡建设部网官方网站成全视频免费观看在线看电视剧
  • 网站建设试卷wordpress登录注册
  • 宜都市网站建设二级域名网站查询入口
  • 做网站 能挣钱吗深圳网站建设网络推广
  • 企业网站多少钱一个网站建设制作设计推广优化
  • seo关于网站南昌媒体网站建设口碑推荐
  • 公司做网站域名的好处企业工商信息查询app
  • 怎么切页面做网站网络推广策划案范文5篇
  • 免费有限公司网站正规的锦州网站建设
  • 四川成都现在可以去吗网站搜索引擎优化公司
  • 做网站的网址怎么弄如何使用wordpress主题
  • wordpress安装插件导致网站15年做哪些网站致富
  • app软件下载网站免费进入国内国际时事最新消息
  • 帮忙做宴会的网站icp备案网站
  • 怎么通过ip查看自己做的网站网站建设策划案范文
  • 西安医院网站建设创建一个软件需要多少钱
  • 南昌网站建设_南昌做网站公司wordpress手机主题浮动菜单
  • 做网站的网络非要专线吗虚拟主机代理商的网站打不开了怎么办
  • 黑龙江网站备案查询招聘海报制作软件app免费
  • 绍兴企业网站建站模板安徽企业年报网上申报入口
  • 友链交换网站网页的风格有哪些方面
  • 建设网站时间推进表公司的网站开发费计入什么科目
  • 坪山网站建设信息高端网站设计上海网站建设上海
  • 放心网站推广优化咨询服务外包公司
  • 移动网站的开发流程图物流网站模板免费
  • 做旅游网站的意义西安seo优化排名
  • 中国建设部网站微信 网页版
  • 企业为什么要建立自己的网站黑龙江省城乡和建设厅网站首页
  • 自适应网站如何做mip网页南充网站设计学校