网站首页 > 技术文章 正文
书写可维护的代码
1,最小全局变量 在js中不用声明变量就可以直接使用,因此注意不要没有声明就使用。(无意中创建的全局变量)比如使用任务链进行var声明。var a=b=12;正确写法为var a,b;a=b=12;在技术上,隐式全局变量并不是真正意义上的全局变量。用var声明的变量可以用delete操作符删除,但是隐式全局变量就不可以,仅是全局对象的一个属性。属性可以删除,变量不可以。
for---in 在非数组对象上遍历,也叫枚举。尽管在javascript中数组也是对象,但不推荐使用for--in--遍历数组。有个很重要的方法hasOwnProperty可以过滤掉从原型链上继承下来的属性或者方法。在js中避免使用eval,setTimeout;setInterval;Function;
// 反面示例
setTimeout("myFunc", 1000);
setTimeout("myFunc(1, 2, 3)", 1000);
// 更好的
setTimeout(myFunc, 1000);
setTimeout(function {
myFunc(1, 2, 3);
}, 1000);
js中常见的自执行函数的写法,1.(function{});2.(function{});3,!function{};4,void function{};
return 有个隐式分号,因此在书写时,如果返回的是一个对象,将return与花括号一行。
js对象之间的继承实现方法:var a={say: function{}};var b={__proto__: a };b继承了a的方法和属性,也拥有了say方法;
在执行一段代码之前,浏览器都会做一些准备工作。例如,变量的声明,this的赋值,对于函数表达式来说像对待变量声明那样对待,对函数声明直接对函数名进行赋值了。这三种的数据准备情况被称为“执行上下文”或者“执行上下文环境”。
在ECMAScript中代码有三种类型,function,eval,global
猜你喜欢
- 2025-08-31 3种方式让WebAssembly与JavaScript飞起来!性能提升300%的实战
- 2025-08-31 TypeScript实现八大排序与搜索算法
- 2025-08-31 Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
- 2025-08-31 在 Java 代码中来一段 JavaScript?聊聊 Flowable 中的脚本任务
- 2025-08-31 编译原理在程序设计中的应用_编译原理在程序设计中的应用有哪些
- 2025-05-27 玩转JavaScript OOP[02]--类的实现
- 2025-05-27 java高级用法之:在JNA中将本地方法映射到JAVA代码中
- 2025-05-27 Node.js与C++:napi调用JavaScript回调函数
- 2025-05-27 1小时打造HaaS版小小蛮驴智能车
- 2025-05-27 easyui datagrid 查询会触发onUncheck问题
- 最近发表
-
- 用Cursor开启JAVA+AI生涯_javascirpt怎么开启
- 大数据调度服务监控平台_大数据调度是什么意思
- SpringBoot、MyBatis、Vue搭建一个Java企业应用开源框架源码分享
- 大数据技术之Flume_大数据volume的含义
- Jenkins运维之路(Slave容器节点)_jenkins slave工作原理
- 程序员自救指南:IDEA 卡成狗?我的 9G 堆内存调参表让你起飞 附避坑
- JMeter:一个简单的测试计划怎么做?
- Windows 命令行终端 PowerShell 美化计划
- JDK25即将发布!新特性概览_jdk52.0
- JDK 25 新特性极简总结(2025 年 9 月 16 日发布,LTS 长期支持)
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)