• 博文
  • 归档
  • 闭包

    2016-11-30

    次访问

    对于 JavaScript 的程序员来说,闭包是一个难懂又必须征服的概念。在介绍闭包前,先来看看和闭包息息相关的变量作用域和变量的生存周期。

    变量的作用域

    变量的作用域无非就是两种:全局变量和局部变量。当在函数中声明一个变量的时候,如果用关键字 var 来声明此变量,那么它就是局部变量,如果没有 var 那么就会成为全局变量。一般不建议用这种方式定义全局变量。而是用 var 将变量声明在函数的外面。

    1
    2
    3
    4
    5
    var name = 'bubuzou.com';  // 全局变量
    function func() {
    var name = 'bubuzou'; // 局部变量
    age = 12; // 全局变量,建议少用这种全局变量的定义方式
    }
    ...more
  • this、call和apply

    2016-11-28

    次访问

    this

    跟别的语言不同的是,JavaScript 的 this 总是指向一个对象,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被声明时的环境。

    this的指向

    除去不常用的 eval 和 with 语句的情况,具体到实际应用中,this 的指向大致可分为以下4种:

    • 作为对象的方法调用

      当作为对象的方法进行调用的时候,this 指向该对象:

      1
      2
      3
      4
      5
      6
      7
      8
      var obj = {
      name: 'bubuzou',
      getName: function() {
      console.log( this === obj ); // true
      console.log( this.name ); // 'bubuzou'
      }
      };
      obj.getName();
    ...more
  • 数组

    2016-11-17

    次访问

    数组字面量

    数组字面量提供了一种非常方便的创建数组的方法。一个数组表达式是在一对方括号内包围零个或多个用逗号分隔的值的表达式。
    数组的第一个值的属性名是 0。

    1
    2
    3
    4
    5
    6
    var empty = [];
    var numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven'];
    empty[1]; // undefined
    numbers[1]; // 'one'
    empty.length; // 0
    numbers.length; // 8

    在大多数语言中,一个数组的所有元素都要求是相同的类型。js 允许数组包含任意混合类型的值:

    1
    2
    var misc = ['string', 98.6, true, false, null];
    misc.length; // 5
    ...more
  • 正则表达式理论篇

    2016-11-04

    次访问

    先来看一个例子

    这里有一个例子,用来匹配 URL 的正则表达式。

    1
    2
    3
    4
    5
    6
    7
    8
    var url = 'http://bubuzou.com:80/goodparts?q#fragment'
    var parse_url =
    /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Z-a-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/
    console.log(parse_url.exec(url))
    /*
    上面这段代码产生的结果如下:
    ["http://bubuzou.com:80/goodparts?q#fragment", "http", "//", "bubuzou.com", "80", "goodparts", "q", "fragment"]
    */
    ...more

分类归档

  • JavaScript12
  • TypeScript1
  • css6
  • git1
  • http1
  • vue5
  • web综合8
  • 小程序3
  • 浏览器7

标签云

JavaScript TypeScript chrome css element eslint git http jest mac node shell svg upload vue wepy 单元测试 反编译 命令 图像 安全 小程序 微前端 性能优化 正则表达式 浏览器

最近文章

  • mac 环境变量与 shell
  • 如何反编译微信小程序
  • mac 终端命令大全
  • 深入学习 TypeScript 类型体操
  • 微前端的几种架构介绍
PREV

© 2016 - 2024 typeR, powered by Hexo
and hexo-theme-bubuzou

本站总访问数:访客数:

闽ICP备16007301号-2