- getBoundingClientRect();
getBoundingClientRect();//获得相对于视窗位置的集合
- <script type="text/javascript"></script>
type为MIME类型,媒介类型/子类型
text/javascript
text/ecmascript
application/ecmascript
application/javascript
text/vbscript
-
apply()和call() 原文
语法:
fun.apply([thisObj],[argarray]);//thisObj可以改变函数中this的指向
fun.call([thisObj],arg1,arg2,...);
- 一个函数接收一个函数作为参数就是高阶函数
Array函数
map() ,reduce()
map()高阶函数吧,接收一个函数作为参数
'use strict';
function pow(x) {
return x * x;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var results = arr.map(pow); // 结果为:[1, 4, 9, 16, 25, 36, 49, 64, 81]
console.log(results);
把Array的所有数字转为字符串:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
要把[1, 3, 5, 7, 9]变换成整数13579,reduce()也能派上用场:
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x * 10 + y;
});
String函数
trim()函数去除字符串左右的空格
生斐波那契数列的函数,可以这么写
function fib(max) {
var
t,
a = 0,
b = 1,
arr = [0, 1];
while (arr.length < max) {
[a, b] = [b, a + b];
arr.push(b);
}
return arr;
}
// 测试:
fib(5); // [0, 1, 1, 2, 3]
fib(10); // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
包装对象
var n = new Number(123); // 123,生成了新的包装类型
var b = new Boolean(true); // true,生成了新的包装类型
var s = new String('str'); // 'str',生成了新的包装类型
typeof new Number(123); // 'object'
new Number(123) === 123; // false
typeof new Boolean(true); // 'object'
new Boolean(true) === true; // false
typeof new String('str'); // 'object'
new String('str') === 'str'; // false
- 总结一下,有这么几条规则需要遵守:
- 不要使用new Number()、new Boolean()、new String()创建包装对象;
- 用parseInt()或parseFloat()来转换任意类型到number;
- 用String()来转换任意类型到string,或者直接调用某个对象的toString()方法;
- 通常不必把任意类型转换为boolean再判断,因为可以直接写if (myVar) {...};
- typeof操作符可以判断出number、boolean、string、function和undefined;
- 判断Array要使用Array.isArray(arr);
- 判断null请使用myVar === null;
- 判断某个全局变量是否存在用typeof window.myVar === 'undefined';
- 函数内部判断某个变量是否存在用typeof myVar === 'undefined'。
123..toString(); // '123', 注意是两个点!
(123).toString(); // '123'
网友评论