0%

Kungsberg - igen

想写点啥,又被熊孩子吵得头大,感觉心力交瘁有心无力……回头再编辑。


Finally, litle peaceful time for myself. What I have done today technically is nothing - went through some basic methods about string/array/object again which makes me sick especilly when you do that in your car. When I read about how this guy who works in NetEase harnesses reduce as a rag doll, it makes me doubting again if I have a functional brain or I have already got Alzheimer's.

And the other thing is changed theme for this experimental blog, although I still haven't finished my own website's いろいろ problems.

Then let's just go through some fundamental stuff.


1) Array methods

基于ES6,改变自身值的方法一共有9个,分别为poppushreverseshiftsortspliceunshift,以及两个ES6新增的方法copyWithinfill

基于ES7,不会改变自身的方法一共有9个,分别为concatjoinslicetoStringtoLocateStringindexOflastIndexOf、未标准的toSource以及ES7新增的方法includes

遍历:
基于ES6,不会改变自身的方法一共有12个,分别为forEacheverysomefiltermapreducereduceRight 以及ES6新增的方法entriesfindfindIndexkeysvalues


2) String methods

字符串原型方法分为两种,一种是html无关的方法,一种是html有关的方法。我们先看第一种。但是无论字符串方法如何厉害,都==不==至于强大到可以==改变原字符串==。

通常,字符串中,==常用的方法==就charAtindexOflastIndexOfmatchreplacesearchslicesplitsubstrsubstringtoLowerCasetoUpperCasetrimvalueof 等这些。熟悉它们的语法规则就能熟练地驾驭字符串。

concat

concat 的性能表现不佳,强烈推荐使用赋值操作符(+或+=)代替 concat。”+” 操作符大概快了 concat 几十倍。

slice

slice() 方法提取字符串的一部分,并返回新的字符串。该方法有些类似 Array.prototype.slice 方法。

toString valueOf
这两个方法都是返回字符串本身。

语法:str.toString(), str.valueOf()

对于对象而言,toString和valueOf也是非常的相似,它们之间有着细微的差别,请尝试运行以下一段代码:

1
2
3
4
5
6
7
8
9
10
11
var x = {
toString: function () { return "test"; },
valueOf: function () { return 123; }
};

console.log(x); // test
console.log("x=" + x); // "x=123"
console.log(x + "=x"); // "123=x"
console.log(x + "1"); // 1231
console.log(x + 1); // 124
console.log(["x=", x].join("")); // "x=test"

当 “+” 操作符一边为数字时,对象x趋向于转换为数字,表达式会优先调用 valueOf 方法,如果调用数组的 join 方法,对象x趋向于转换为字符串,表达式会优先调用 toString 方法。

trim 不支持IE9以下的低版本IE浏览器

trim() 方法清除字符串首尾的空白并返回。

语法:str.trim()


3) Object methods

常用的API主要有Object.prototype.toString()Object.prototype.hasOwnProperty()Object.getPrototypeOf(obj)Object.create()Object.definePropertyObject.keys(obj),Object.assign()

Object.keys() and Array.forEach() 结合使用,实现object的foreach循环遍历。
https://gomakethings.com/the-es6-way-to-loop-through-objects-with-vanilla-javascript/