Javascript中一些经常忘记的基础知识

今天终于静下心来,决定整理一下自己从学js以来容易忘记的知识点。基础是万丈高楼的核心。而后的每一处失败都是基础不够好导致的问题,

加油。

 

1.substring()---字符串的方法

----返回指定索引区间的子串:

var s = 'hello, world'
s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello'
s.substring(7); // 从索引7开始到结束,返回'world'

2.slice--数组中的方法

----它截取Array的部分元素,然后返回一个新的Array:

  【slice()就是对应String的substring()版本】

  var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
  arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
  arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

注意到slice()的起止参数包括开始索引,不包括结束索引。
如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array:

  var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
  var aCopy = arr.slice();
  aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
  aCopy === arr; // false

3.splice--数组中的方法

----是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:

  var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
  // 从索引2开始删除3个元素,然后再添加两个元素:
    arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
    arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

  // 只删除,不添加 :

    var arr = ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
    arr.splice(2, 2); // ['Google', 'Facebook']
    arr; // ['Microsoft', 'Apple', 'Oracle']

  // 只添加,不删除 :

    var arr = ['Microsoft', 'Apple', 'Oracle']
    arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
    arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

(总结:如果splice的第二个参数不为0,则代表删除,为0则代表添加元素,并且splice的返回值是删除掉的元素,如果第二个参数为0的话则返回空数组)

 4.concat

----把当前的Array和另一个Array连接起来,并返回一个新的Array:

  var arr = ['A', 'B', 'C'];
  var added = arr.concat([1, 2, 3]);

  added; // ['A', 'B', 'C', 1, 2, 3]
  arr; // ['A', 'B', 'C']

! 请注意,concat()方法并没有修改当前Array,而是返回了一个新的Array

  实际上,concat()方法可以接收任意个元素和Array,并且自动把Array拆开,然后全部添加到新的Array里:
  var arr = ['A', 'B', 'C'];
  arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]
!但是当接受到数组里套数组的时候则只会拆开最外层的数组

5.要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:

  var xiaoming = {
    name: '小明'
   };
  xiaoming.hasOwnProperty('name'); // true
  xiaoming.hasOwnProperty('toString'); // false

6.JavaScript把null、undefined、0、NaN和空字符串''视为false,其他值一概视为true

 

posted @ 2017-12-22 09:21  FXHfighting  阅读(134)  评论(0编辑  收藏  举报