对于正在学习后端的朋友来说,JavaScript是你的主要开发语言。 句子结构本身比较简单,生态系统也比较健全,影响力越来越大。
在我们的使用过程中,经常会遇到各种奇怪的问题,有时让我们百思不得其解。
其实,遇到问题是很正常的。 学姐根据小伙伴们私信提到的问题,查找了很多相关资料,为你们整理了那些小伙伴们意想不到的JavaScript问题及解决方案!
1. 箭头函数返回未定义
为什么函数f2执行后返回undefined?
乍一看,我们认为它应该返回 { },但它返回了 undefined。 其本质原因是箭头函数返回的 { } 是箭头函数句型的一部分。 我们可以通过写一个测试用例来看看:
因此,前面的 f2 函数返回 undefined。 当然javascript解析字符串,如果需要返回一个{}对象,只需要使用括号将返回值包裹起来即可:
2. JavaScript中有标签吗?
下面的写法有没有问题?
答案没问题,会返回字符串Hello。 因为foo被识别为标签,所以执行前面的console.log("Hello"),然后执行break foo中断执行。
我们经常使用带有 Break/Continue 语句的标记句子来结束或继续循环:
3. [ ] 和 null 都是对象
下面三行代码返回的结果是什么?
返回结果是这样的:
typeof 运算符返回一个字符串,并且必须符合表 37:typeof 运算符的返回值。 对于 null、普通对象、标准特殊对象和未实现 [ [Call] ] 的非标准特殊对象,它返回字符串 'object'。
但是,您可以使用 toString 方法检查对象的类型。
4. 也可以使用反冒号来执行函数吗?
是不是不仅有下面的方法来调用函数,还有其他的方法呢?
当然有,我们可以使用反逗号调用:
这看起来很神奇,但它实际上使用了模板字符串。 这是模板字符串的中间形式,带标签的模板字符串。
上面的示例代码中:f函数是模板字面量的标签,标签可以使用该函数来解析模板字符串。 标签函数的第一个参数包含一个字符串值字段。 其余参数与表达式相关。
5. 获取两个日期之间的差异
将开始日期与结束日期相除即可得到以秒为单位的差值。 然后将差值乘以三天内的秒数即可得到天数差值。
6. 查找两个链表之间的差异
此解决方案从一个字段创建一个集合,然后使用数组筛选模式将其与另一字段进行比较。 此处使用 Set 是一种优化,在处理较大数组时效率更高。
7. 将字段转换为 CSV
数组映射方法用于迭代字段的每个位级别javascript解析字符串,并使用定义的分隔符连接每个值位。
8、计算字段某一项有问题
Array reduce 方法用于循环遍历字段并在每次目标值与当前值匹配时递增累加器值。
9、字符串首字母小写
该字符串被转换为字段并进行解释。 数组中的第一个元素是第一个字母,使用 toUpperCase 方法将其转换为小写,链表的其余部分作为字符串连接起来。
10.检查字符串是否是有效的JSON
JSON解析方法用于将字符串解析为JSON,如果无效会报错。 try-catch 语句用于捕获此错误并返回 false 或 true。
写到最后
前端问题有成千上万,如果你掌握了 JavaScript,你就有机会赶上别人。 以上就是姐姐给大家分享的JavaScript常见的10个问题。 整理这个主要是希望小伙伴们能够从中发现一些有价值的东西,或许可以应用到你以后的代码库中。
如果朋友们遇到这样的问题,除了以上的方法之外,你们会怎么解决呢? 或者你有什么新想法想和大家分享,也可以在评论区告诉前辈们!
发表评论