2015-05-20 浩阳
JavaScript 作用域和作用域链学习笔记。 继续阅读 »
2016-10-26 ruki
xmake的工程描述文件xmake.lua虽然基于lua语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake对其进行了一层封装,使得编写xmake.lua不会像些makefile那样繁琐 基本上写个简单的工程构建描述,只需三行就能搞定,例如: lua target("test") set_kind("binary") add_files("src/*.c") 然后只需要执行编译并且运行它: bash $ xmake run test 这对于想要临时写些测试代码来讲,极大地提升了开发效率。。 作用域与工程描述语法 xmake的描述语法是按作用域划分的,主要分为: 外部作用域 内部作用域 继续阅读 »
2014-03-10 W.Y.
面试或被面试时基本都会涉及到这个最原始的 JavaScript 基础问题,试想一下您有没有在某些时候向别人解释这些概念时,把自己给绕进去了;网络上偶遇一篇英文文章,细读之后觉得有参考价值,文章不长,就顺手翻译了一下,希望某些同学可以用的上。 原文文中的 Scope 翻译成中文是“变量作用域”,译文某些地方直接简称为“作用域” ,Closure 翻译后是“闭包”。Rebort Nyman 的原文是 Explaining JavaScript Scope And Closures,某些不清楚的地方可以直接参考原文。 以下是译文 背景 很多文章或博客都在试着解释作用域和闭包,但大多数都没有解释的很清楚(crystal-clear) 继续阅读 »
2014-06-01 W.Y.
本文译自 Dmitry A. Soshnikov 的文章 ECMA-262-3 in detail. Chapter 4. Scope chain. 概述 通过第二章 变量对象的学习我们知道,执行上下文的数据(变量、函数声明、函数形参)都是以属性的方式储存在变量对象中。 我们还知道,变量对象是在进入执行上下文阶段被创建和初始化,随后在执行代码阶段会对属性值进行更新。 本文将深入讨论与执行上下文密切相关的另外一个重要的概念 —— 作用域链(Scope Chain)。 more 定义 如果简单扼要地讲,那么作用域链就是与内部函数息息相关的一个概念。 众所周知,ECMAScript 允许创建内部函数,甚至可以将这些内部函数作 继续阅读 »
2017-03-04 Kevin
Laravel 的 API 认证系统 Passport 介绍 安装 前端快速上手 配置 令牌的使用期限 发放访问令牌 管理客户端 请求令牌 刷新令牌 密码授权令牌 创建密码授权客户端 请求密码授权令牌 请求所有作用域 简化授权令牌 客户端授权令牌 私人访问令牌 创建私人访问令牌的客户端 管理私人访问令牌 路由保护 通过中间件 传递访问令牌 令牌作用域 定义作用域 给令牌分派作用域 检查作用域 使用 JavaScript 接入 API 事件 测试 继续阅读 »
2016-10-12 YongHao Hu
go
大家看看这段代码能否准确的说出输出语句是什么? ``` package main import "fmt" var a int func funca() { a, b := 12, 3 fmt.Println("a is ", a, " b is ", b) } func funcb() { fmt.Println("a is ", a) } func main() { funca() funcb() 继续阅读 »
2015-01-12 Jason Liao
Closures are functions that refer to independent (free) variables 闭包是静态方式/词法方式进行存储所有父作用域的一个函数 在 JavaScript 高级程序设计里面通过一个createComparisonFunction()函数和这个函数的作用域链之间的关系图说得很明白为什么闭包可以访问外部函数的变量,是因为闭包的作用域链不仅包括自己本地的活动对象,还包括外部函数作用域链所指向的活动对象 继续阅读 »
2016-10-12 曹强
闭包是js中一个难懂又必须征服的概念,他的形成与变量作用域以及变量的生存周期密切相关。 变量作用域和生存周期 作用域,按字面理解,就是指变量的有效范围,超出这个范围就无法访问。 在函数中,里面函数可以访问外面的变量,但是外面无法访问内部变量。举个简单例子: var a = 1; var fun1 = function() { var b = 2; var fun2 = function() { var c = 3; alert(b); //2 alert(c); //3 } fun2(); alert(c); //c is not de 继续阅读 »
2017-04-05 ruki
描述语法 xmake的描述语法基于lua实现,因此描述语法继承了lua的灵活性和简洁性,并且通过28原则,将描述作用域(简单描述)、脚本作用域(复杂描述)进行分离,使得工程更加的简洁直观,可读性非常好。 因为80%的工程,并不需要很复杂的脚本控制逻辑,只需要简单的几行配置描述,就可满足构建需求,基于这个假设,xmake分离作用域,使得80%的xmake.lua文件,只需要这样描述: lua target("demo") set_kind("binary") add_files("src/*.c") 而仅有的20%的工程,才需要这样描述: ```lua target("demo") set_kind 继续阅读 »
2015-03-05 Jason Liao
变量提升,就是当变量或者函数不管在哪里声明的时候,都会被提升到该作用域的顶部来声明 这里有三个要注意的地方,我们也会在等下的例子里一个一个的说到 JavaScript没有块级作用域 函数声明会覆盖变量声明,但不会覆盖变量赋值 函数声明会提升,函数表达式不会被提升 继续阅读 »