JS 实践杂记
1. Function.prototype的类型是函数
typeof Function.prototype === 'function'; // true
2. Array.prototype的类型是数组
Array.isArray(Array.prototype); // true
3. 构造函数的返回值为基本数据类型时,其被实例化时将不生效
function People() { return 'a'; } // People {} function People() { return 3; } // People {} function People() { return false; } // People {} function People() { return null; } // People {} function People() { return undefined; } // People {}
4. 函数表达式中的函数名不可变更
5. 严格模式下,全局作用域内的直接函数的this指向undefined(非Window)
6. 可以使用按位或操作进行向下取整
var x = 1.9; x | 0; // 1
7. 常用的继承模式
function Super() { this.wealth = 1000; } function Child(name) { Super.call(this); this.name = name; } const extend = function(SuperClass, ChildClass) { var F = function() {}; F.prototype = SuperClass.prototype; ChildClass.prototype = new F(); ChildClass.prototype.constructor = ChildClass; }; extend(Super, Child); const c = new Child('Lilei'); c.wealth; // 1000 c.name; // 'Lilei';
8. Number()
Number(null); // 0 Number(undefined); // NaN
9. switch语句中的case子句使用的是严格相等来做判断
10. 类型转换
(1) 当尝试将[0]转换为布尔类型时,[0]将被转换为true;
(2) 当[0] == true做比较时,布尔类型会被转为数字(true -> 1),对象类型(如数组)会首先点用toString()方法,尝试将其转为字符串,而后将字符串转为数字(过程:[0] -> '0' -> 0。
[0] == true; // 如下: 0 == 1; // false
11. 关于拷贝
11.1 拷贝一个对象,如果其某个属性是基本类型,拷贝的是属性的数据值;反之,如果其某个属性为引用类型,则拷贝的是属性的引用地址。
11.2 “浅拷贝”与“深拷贝”的基础区别,“浅拷贝”只解决了对象第一层的拷贝问题。
11.3 常见的浅拷贝方式
1 2 3 4 5 6 7 8 | // 1. Object.assign方法 const copy = Object.assign({}, sources); // 2. spread扩展运算法 const copy = { ... sources }; // 3. 数组slice方法 const sliced = sources.slice();<br><br> // 4. 数组concat方法<br>const c = a.concat(b); |
11.4 关于深拷贝概念的理解
神拷贝会拷贝所有的属性,并动态分配拷贝属性指向的内存,当对象和它所引用的对象一起拷贝时即深拷贝。
// 持续补充中
分类:
JavaScript
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?