1.装箱和拆箱:
装箱:把基本数据类型转化为对应的引用数据类型的操作;
| var num = 123 |
| var objNum = new Num(123) |
| console.log(typeof objNum) |
拆箱:将引用类型对象转换为对应的值类型数据对象;
| valueOf() |
| var objNum = new Number(132) |
| console.log(typeod objNum.valueOf()) |
| js toPrimitive(input, type) input:传入的值 type:值类型 |
| 1.input 判断是不是原始类型的值 :是 直接返回 |
| 2.不是 : input.valueOf() 是: 原始类型 ->直接返回 |
| 3.还不是:input.toString():string 是 原始类型 返回 |
| 4.报错 |
面试题:
| console.log([] + []) |
| console.log([].valueOf()) |
| console.log([].toString()) |
| [] + [] = '' + '' = '' |
| |
| console.log([] + {}) |
| console.log([]) |
| console.log({}.valueOf()) |
| console.log({}.toString()) |
2.栈和堆:
什么是栈:计算机为原始类型开辟的一块内存空间string number ...
什么是堆:计算机为引用类型开辟的一块内存空间 object
| var a = 'Mooc' |
| var b = a |
| b = 'Mooc2' |
| console.log(a, b) |
| |
| var c = {key: 1} |
| var d = c |
| d.key = 2 |
| console.log(c, d) |
| |
| |
| |
| |
3.js中sort()方法
| var arr = [1, 2, 3, 4, 5]; |
| console.log(arr.sort()) |
| var arr2 = [3. 25, 15, 18, 9, 22]; |
| console.log(arr2.sort()) |
| js中sort: |
| 1.默认升序 |
| 2.将排序的元素转为字符串['3', '22'...];找对应字符串的Unicode码表 |
| 默认0-9-----先排第一位,排完第一位之后在排第二位 |
| |
| var arr3 = [3. 25, 15, a, 18, 9, 22]; |
| console.log(arr3.sort()) |
| 解决: |
| 1.定义一个比较器函数 |
| |
| function(x,y){ |
| return x-y |
| } |
| var arr4 = [3. 25, 15, 18, 9, 22]; |
| arr4.sort(function(x,y){ |
| return x-y |
| }) |
| arr4.sort(function(x,y){ |
| return y-x |
| }) |
3.js中Date对象中的getMounth() 需要注意的:
| var now = new Date() |
| console.log(now.getTime()) |
| console.log(now.getDay()) |
| console.log(now.getDate()) |
| console.log(now.getMounth() + 1) |
| js 设计 仿照 java1.1 getMounth() 0-11=> 1-12 20多年js(java修改了但是js没修改过来) |
4.开发中编码和解码使用场景有哪些
| var url = 'https://www.baidu.com?key=hello&name=张三&num=123' |
| |
| console.log(escape(url)) |
| var es = escape(url) |
| console.log(unescape(es)) |
| |
| |
| console.log(encodeURI(url)) |
| var ec = encodeURI(url) |
| console.log(decodeURI(ec)) |
| |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通