分类 JavaScript 下的文章

setTimeout笔记


setTimeout()是什么?

嗯,它是一个定时器。我最基础的了解是这样的,就是我们设置一个时间,等这个时间到了,就执行一个函数或者一段代码。

Syntax 语法

//  必要参数 function,可选参数 时间,形参
var timeoutID = scope.setTimeout(function[, delay, param1, param2, ...]);
//  必要参数 function,可选参数 时间
var timeoutID = scope.setTimeout(function[, delay]);
//  必要参数 code代码段,可选参数 时间
var timeoutID = scope.setTimeout(code[, delay]);


ES6之let声明


  • let 的「创建」过程被提升了,但是初始化没有提升,不允许重复声明。
  • var 的「创建」和「初始化」都被提升了。
  • TDZ 暂时死区,就是不能在初始化之前,使用变量。
let x = 'global'
{
  console.log(x) // Uncaught ReferenceError: x is not defined
  let x = 1
}

console.log(x)报错了,说x没有被定义,说明x指向的是let x = 1声明的x,而不是块代码外的x变量
这就说明了let x = 1声明提升了,你觉得代码应该是这样的:

let x = 'global'
{
  let x
  console.log(x) // Uncaught ReferenceError: x is not defined
  x = 1
}


js截取文件名不带后缀


利用正则表达式是匹配后缀名

一般文件后缀都为.xxx,也就是说从尾部匹配的话首先是字母,接着应该有一个.
那么我们就开始写正则表达式
利用在线工具 方便我们编写边测试
一般都是小写字母,所以我们用[a-z],个数一个是1到无限{1,},然后从尾部匹配开始$
所以我们从后面匹配一串字母的正则表达式长这样[a-z]{0,}

测试一下


JavaScript类的继承


        //  superclass 父类
        function Person(first, last) {
            this.first = first
            this.last = last
        }

        Person.prototype = {
            fullName: function() {
                console.log(this.first + ',' + this.last)
            },
            fullNameReversed: function() {
                console.log(this.first + this.last)
            },
            sayHello: function(str) {
                alert(str)
            },
        }

        //  subclass  子类
        function cuteGirl(args) {
            Person.apply(this, args)
            //    把父类Person的this绑定到当前子类cuteGirl下
        }

        //  subclass extends superclass  子类继承父类
        cuteGirl.prototype = Object.create(Person.prototype)
        //  新建了一个对象,参数Person.prototype是新创建的对象的原型
        cuteGirl.prototype.constructor = cuteGirl
        //  修正cuteGirl的构成器,因为上面改动了cuteGirl.prototype

        var xiaohong = new cuteGirl(['xiao', 'hong'])

        xiaohong.sayHello('hhh')  //    一个弹窗
        xiaohong.fullName()  //    xiao,hong
        xiaohong.fullNameReversed()  //    xiaohong