自己遇到和搜集的js小知识

自己平时随意看到的。记录一下

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 = xyz7.
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)

}

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值