自己平时随意看到的。记录一下
1.测量javascript代码块性能
console.time("begin end")
function test(){}
console.timeEnd(begin end)
2.判断子字符串是否存在与字符串中
var text = “text”
if(text.indexOf('tex') >=0){} 可以使用!~这种
var text = “text” !!~text.indexOf('tex')
!把任意类型转换为boolen类型
~转成数字类型
3.返回对象,使方法可以链式调用
function Person(name) {
this.name = name;
this.sayName = function () {
console.log("hello my name", this.name);
return this;
}
this.changeName = function (name) {
this.name = name;
return this;
}
}
var person = new Person('asd');
person.sayName().changeName("wang hao").sayName();
4.转换为数字更快的方法是使用+号来实现
var one ='1'
one = +one; //1
5.判断时 使用== 会进行类型转换 === 不会 可以说 判断同类型 === 比== 更快
6. Javascript 中的闭包是什么? 请举例说明。
闭包是一个内部函数 可以访问外部函数作用域链中的变量。闭包可以访问三个范围的变量。全局变量,自己局部的变量,封闭函数内的变量。栗子
var globalVar = "xyz";
(function outerFunc(outerArg) {
var outerVar = 'a';
(function innerFunc(innerArg) {
var innerVar = 'b';
console.log(
"outerArg = " + outerArg + "\n" +
"innerArg = " + innerArg + "\n" +
"outerVar = " + outerVar + "\n" +
"innerVar = " + innerVar + "\n" +
"globalVar = " + globalVar);
})(456);
})(123);
outerArg = 123
innerArg = 456
outerVar = a
innerVar = b
globalVar = xyz
7.
for (var i = 0; i < 5; i++) {
setTimeout(function() { console.log(i); }, i * 1000 );
} ?输出什么, 如何使用闭包实现01234
for (var i = 0; i < 5; i++) {
(function(i){
setTimeout(function() { console.log(i); }, i * 1000 );
})(i)
}