对于学前端的同学而言,JavaScript 是大家的主要开发语言,本身语法比较简单,而且生态系统也比较完善,影响力也越来越大。

在我们使用的过程中,经常会遇到各种奇怪的问题,有时候会让我们摸不着头脑。

实际上遇到问题是常态,学姐根据同学们私信我提到的问题去查找了许多相关资料,把这些同学们意想不到的JavaScript问题及解决办法整理出来给大家!

字符串json_将字符串解析成json对象_js解析json字符串

1、箭头函数返回undefined

函数f2执行后为什么返回了undefined?

字符串json_js解析json字符串_将字符串解析成json对象

我们第一眼感觉应该是返回 { },可是却返回了 undefined,这本质原因是因为箭头函数返回的 { } 是箭头函数语法的一部分,我们写一个测试用例就能看出来:

因此上面 f2 函数返回的是 undefined,当然,如果需要返回一个 { } 对象也是可以的,只需要使用括号将返回值包裹起来:

2、JavaScript 中也有标签?

下面这种写法会有问题吗?

字符串json_将字符串解析成json对象_js解析json字符串

答案是没问题,会返回 Hello 的字符串。因为 foo 被识别为一个标签,然后执行后面 console.log(“Hello”),然后执行 break foo中断执行。

我们经常会使用带标签的语句和 break/continue 语句一起使用,从而实现结束或继续循环:

字符串json_js解析json字符串_将字符串解析成json对象

3、 [ ]和null都是对象

下面 3 行代码返回结果是什么?

返回结果是这样的:

typeof 操作符返回一个字符串,且必须符合 Table 37: typeof 操作符 返回值。对于没有实现 [ [Call] ] 的 null、普通对象、标准特异对象和非标准特异对象,它返回字符串 ‘object’。

将字符串解析成json对象_js解析json字符串_字符串json

但是,你可以使用 toString 方法检查对象的类型。

js解析json字符串_将字符串解析成json对象_字符串json

4、还能使用反引号执行函数?

调用函数除了下面的方式,还有其他方式吗?

js解析json字符串_字符串json_将字符串解析成json对象

当然还有啦,我们可以使用反引号调用:

字符串json_js解析json字符串_将字符串解析成json对象

这个看着很神奇的样子,但是实际上用的是模版字符串。这是一种高级形式的模版字符串,是带标签的模版字符串。

上面示例代码中:f 函数是模版字面量的标签,标签可以用函数解析模板字符串。标签函数的第一个参数包含一个字符串值的数组。其余的参数与表达式相关。

5、获取两个日期的差

从结束日期中减去开始日期,以获得以秒为单位的差异。然后将差值除以一天中的秒数,得到天数差值。

将字符串解析成json对象_字符串json_js解析json字符串

6、找出两个数组之间的差异

此解决方案从一个数组创建一个集合,然后使用Array 筛选器方法将其与另一个数组进行比较。此处使用Set 是一种优化,在处理较大的阵列时效率更高。

js解析json字符串_将字符串解析成json对象_字符串json

7、将数组转换为CSV

Array map方法用于遍历数组的每个级别,并使用定义的分隔符联接每个值。

字符串json_js解析json字符串_将字符串解析成json对象

8、计算数组中某项出现问题

Array reduce方法用于循环遍历数组,并在每次目标值与当前值匹配时递增累加器值。

js解析json字符串_字符串json_将字符串解析成json对象

9、字符串首字母大写

该字符串被强制转换为数组并进行解构。数组中的第一个元素是第一个字母,toUpperCase方法用于将其转换为大写,而数组的其余部分则作为字符串连接。

字符串json_将字符串解析成json对象_js解析json字符串

10、检查字符串是否为有效的JSON

JSON 解析方法用于将字符串解析为JSON,如果它无效,将引发错误。try-catch语句用于捕获此错误并返回false或者返回true。

字符串json_js解析json字符串_将字符串解析成json对象

写到最后

前端问题千千万,搞定JavaScript有机会超越别人一大半。以上就是学姐和大家分享的10个JavaScript中比较常见的问题,整理这些的主要原因是希望同学们能从中找到一些有价值的东西,也许还可以运用到你未来的代码库中。

假如同学们遇到这些问题,除了以上方法,大家会如何去解决呢?或者你有什么新想法想分享给大家,评论区告诉学姐!

限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。