美文网首页
阮一峰JS教程读后感(七)标准库-Array、String

阮一峰JS教程读后感(七)标准库-Array、String

作者: 前端艾希 | 来源:发表于2019-06-27 13:40 被阅读0次

Array

1. 如何生成包含100个空元素的数组?

array = new Array(100)  // [ empty * 100],每个元素都是undefined

2. 当Array接受两个以上的参数时返回结果是什么?

多参数时,所有的参数都是返回新数组的成员。

3. 在Js中如何实现栈结构?

初始化一个长度为0的数组,使用数组的push方法即入栈,pop方法即出栈,实现了先进后出的栈结构。

4. 如何在一个字符串中每隔一个字符加入一个符号?

利用数组的join方法

str = 'abcd'
arr = Array.from(str)
str = arr.join('-') // 'a-b-c-d'
如果数组中有空字符会被转化为空字符串

5. 如何实现数组的reverse方法

function Reverse(arr) {
    if (!Array.isArray(arr)){
        console.log('syntex error')
        return
    }
    num = Math.floor(arr.length / 2)
    length = arr.length
    for(let i = 0; i <= num; i++){
        temp = arr[i]
        arr[i] = arr[length - 1 - i]
        arr[length - 1 - i] = temp
    }
    return arr
}

6. 数组的slice如果接受的是空参数,返回什么?

如果接受的参数为空则相当于返回与一个原数组的拷贝,并且是深拷贝。

7. splice方法与slice方法的区别?

slice不会改变原数组的结构,而splice会改变原数组

8. 如果想切割数组怎么做?

使用splice方法,如果该方法只接受了一个参数,那么就会从这个参数对应的地方将数组分为两半,会改变原数组结构。

arr = [1, 2, 3, 4, 5]
b = arr.splice(2) // [3, 4, 5]  2 是起始位置,从0开始
a // [1, 2]

9. 如何使用sort来达到排序的效果?

function Sort(arr) {
    arr.sort(function (a,b) {
        return a-b
    })
    return arr
}

10. forEach 和 map 方法的区别?

map会返回值,而forEach不会,它只操作数据。

二、String

String对象和Array对象比较类似,很多Array有的属性和方法String也有。

1. charAt取字符串的字符和使用 [index] 取字符的区别在哪?

在字符串中使用中括号取字符和在数组中是一样的,如果index超出范围,那么返回undefined,但是如果使用charAt方法,如果超出范围则会返回空字符 '' 。

2. slice方法和substring方法的区别

首先二者都是String的实例方法,并且两者都能接受两个参数,这两个参数都是字符串的index,但是如果slice方法的参数中有负数,那么会自动将负数加上字符串你的长度,表示倒数第n个的意思,但是substring会自动把负数转为0,并且 还会私自调换两个参数的位置,容易出错。

3. indexOf方法如果返回-1代表什么意思?

indexOf方法用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配。

'JavaScript'.indexOf('script') // -1

4. trime方法的作用?

trim方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。

'  hello world  '.trim()
// "hello world"

该方法去除的不仅是空格,还包括制表符(\t、\v)、换行符(\n)和回车符(\r)。和python中的stripe方法很像啊。。。

5. 字符串的比较

localeCompare方法用于比较两个字符串。它返回一个整数,如果小于0,表示第一个字符串小于第二个字符串;如果等于0,表示两者相等;如果大于0,表示第一个字符串大于第二个字符串。

'apple'.localeCompare('banana') // -1
'apple'.localeCompare('apple') // 0

该方法的最大特点,就是会考虑自然语言的顺序。举例来说,正常情况下,大写的英文字母小于小写字母。而普通的字符串比较大小则是从字符串的第一个字符开始比较Unicode码点的大小。

相关文章

网友评论

      本文标题:阮一峰JS教程读后感(七)标准库-Array、String

      本文链接:https://www.haomeiwen.com/subject/wwzlcctx.html